首页 > 其他分享 >自定义MultipleViewResolver

自定义MultipleViewResolver

时间:2023-07-02 13:07:39浏览次数:46  
标签:resolvers JsonModelAndView 自定义 viewName public import MultipleViewResolver Strin

1.MultipleViewResolver.java
import java.util.Locale;
 import java.util.Map;import org.springframework.web.servlet.View;
 import org.springframework.web.servlet.ViewResolver;public class MultipleViewResolver implements ViewResolver {
  
  private Map<String, ViewResolver> resolvers; public void setResolvers(Map<String, ViewResolver> resolvers) {
   this.resolvers = resolvers;
  } public View resolveViewName(String viewName, Locale locale)
    throws Exception {
   int index = viewName.indexOf('.');//first '.'
   ViewResolver resolver = null;
   
   if (index > -1) {
    int p = viewName.indexOf("?");//first '?'
    p = p == -1 ? viewName.length() : p;
    if (resolvers.containsKey(viewName.substring(index + 1, p))) {
     resolver = resolvers.get(viewName.substring(index+1, p));
    } else {
     resolver = resolvers.get(viewName.substring(index+1));
    }
   } else {
    resolver = resolvers.get(viewName);
   }  if (resolver != null) {
    return resolver.resolveViewName(viewName, locale);
   }
   
   return null;
  } 
2.jsonView.java
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;import org.kframe.util.JSONResponseUtil;
 import org.springframework.core.Ordered;
 import org.springframework.web.servlet.view.AbstractView;public class JsonView extends AbstractView implements Ordered {
 private int order;
 public JsonView() {
   setContentType("application/json;charset=UTF-8");
  } @SuppressWarnings("unchecked")
  @Override
  protected void renderMergedOutputModel(Map map, HttpServletRequest request,
    HttpServletResponse response) throws Exception {
   Object o = map.get(JsonModelAndView.EXCLUDE_PROPERTY);
   if (o != null) {
    JSONResponseUtil.print(response, map .get(JsonModelAndView.MODEL_KEY), (String[]) o);
   } else {
    JSONResponseUtil.print(response, map .get(JsonModelAndView.MODEL_KEY));
   }
  } public void setOrder(int order) {
   this.order = order;
  } public int getOrder() {
   return order;
  }}
 
3.JsonModelAndView.java
import org.springframework.web.servlet.ModelAndView;
public class JsonModelAndView extends ModelAndView {
 public static final String MODEL_KEY = "MODEL_KEY";
  
  public static final String EXCLUDE_PROPERTY = "EXCLUDE_PROPERTY"; private static final String VIEW_NAME = "json";
 public JsonModelAndView() {
   setViewName(VIEW_NAME);
  } public JsonModelAndView(Object object) {
   addObject(MODEL_KEY, object);
   setViewName(VIEW_NAME);
  }
  
  public JsonModelAndView(Object object, String[] excludeProperty) {
   addObject(MODEL_KEY, object);
   addObject(EXCLUDE_PROPERTY, excludeProperty);
   setViewName(VIEW_NAME);
  } public void setModel(Object object) {
   addObject(MODEL_KEY, object);
  } public void setExcludeProperty(String[] excludeProperty) {
   addObject(EXCLUDE_PROPERTY, excludeProperty);
  }
 } 
4.

标签:resolvers,JsonModelAndView,自定义,viewName,public,import,MultipleViewResolver,Strin
From: https://blog.51cto.com/u_16174476/6604421

相关文章

  • 11.9 自定义异常
    demo在项目开发中,会大量接触自定义异常本节案例,综合本章节很多案例。classBombExceptionextendsException{//自定义强制处理异常 publicBombException(Stringmsg){ super(msg);//调用父类构造 }}classFood{ publicstaticvoideat(intnum)throwsBombE......
  • 将MembershipCreateStatus枚举成员翻译成自定义信息
    publicstaticclassAccountValidation{publicstaticstringErrorCodeToString(MembershipCreateStatuscreateStatus){switch(createStatus){caseMembershipCreateStatus.DuplicateUserName:......
  • 前端Vue自定义注册界面模版 手机号邮箱账号输入框 验证码输入框  包含手机号邮箱账号
    前端Vue自定义注册界面模版手机号邮箱账号输入框验证码输入框 包含手机号邮箱账号验证,下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=13306效果图如下:......
  • 压 力测试系统,支持自定义接口
    短信压力测试系统,支持自定义接口支持卡密,短信压力测试系统,解决一切骚扰电话,教程在压缩包里面可多个服务器挂脚本分担压力,套了cdn导致无法正常执行脚本可以尝试添加白名单这边建议使用MySQL方式同服务器下直接配置数据库信息即可,其他配置详见源码www.httple.net/149170.htm......
  • Qt/C++编写超精美自定义控件(历时9年更新迭代/超202个控件/祖传原创)
    一、前言无论是哪一门开发框架,如果涉及到UI这块,肯定需要用到自定义控件,越复杂功能越多的项目,自定义控件的数量就越多,最开始的时候可能每个自定义控件都针对特定的应用场景,甚至里面带了特定的场景的一些设置和处理,随着项目数量的增多,有些控件又专门提取出来共性,做成了通用的自定义......
  • 【胖虎的逆向之路】——GOT/PLT Hook详解&针对自定义so库的Hook实操
    文章目录@[TOC](文章目录)前言一、ELF是什么?1、ELF的概念2、ELF的组成2.1、两种视图是什么呢?2.2、ELF文件头又是什么西西?2.2、ELF中节头表是什么南南呢?2.2、ELF中程序头表是什么北北呢?二、动态库装载、动态链接与重定位简单理解1、装载2、动态链接3、重定位三、PLT与GOTHoo......
  • 前端Vue自定义勾选协议组件 可用于登录 注册等场景
    前端Vue自定义勾选协议组件,可用于登录注册等场景,下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=13299效果图如下:cc-protocolBox使用方法<!--agree:是否同意勾选 protocolArr:协议数组@click:勾选同意点击@protocolClick:协议点击--><......
  • 前端Vue自定义登录界面切换tabs 账号登录验证码登录模版 支持手机号校验邮箱校验验证
    前端Vue自定义登录界面切换tabs账号登录验证码登录模版支持手机号校验邮箱校验、验证码发送, 下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=13298效果图如下:cc-loginTabs使用方法<!--selIndex:选中序列 tabs-arr:tabs数组 @tabClic......
  • Docker网络管理_自定义网络
    Docker网络管理_自定义网络基础命令dockernetwork--help命令名称说明dockernetworkconnect将容器连接到网络dockernetworkcreate创建一个网络dockernetworkdisconnect断开容器的网络dockernetworkinspect显示一个或多个网络的详细信息dockernet......
  • 使用 Dockerfile 自定义 Nginx 镜像
    一般来说,自定义Nginx只需要把静态文件放到镜像里就可以了,不需要重写 CMD 与 ENTRYPOINT。但是,如果的确需要在Nginx启动前执行一些操作,就需要重写 CMD 了,如果写成下边就样: FROMnginx COPYsomeshell.sh/ RUNchmod+x/someshell.sh CMDsomeshell.s......