视图解析器原理

进入dispatcherServlet
在这里插入图片描述
在这里插入图片描述

对modelAndView处理
在这里插入图片描述
这里view 的两种处理方式,同时调用了view的render方法,就这样结束了
在这里插入图片描述
如果view是String ,那么获取视图解析器返回view
在这里插入图片描述
在这里插入图片描述
最后调用view的render方法处理。

大概流程就是这样。由此我们发现,视图解析器就是返回一个可以解析视图的类,视图解析器不会做其它操作。这点我们看他的接口可以看出来
在这里插入图片描述
那么很明显,处理操作都是view来实现的,因为之后就没有其它操作了,查看接口
在这里插入图片描述
到这里你可以手写一个简单的视图解析器了。当然你需要抛弃 model 还有国际化了,也可以参考如下。

public class MyView implements View {
    @Override
    public String getContentType() {
        return "text/html";
    }

    @Override
    public void render(Map<String, ?> model, HttpServletRequest request, HttpServletResponse response) throws Exception {

         //有用 ,但是又bug,不过这里我修改不了,可能是jspServlet的问题
      //  request.getRequestDispatcher("/jsp/index.jsp").forward(request,response);
        //
        response.getOutputStream().println("<h1>hello world</h1>");
    }
}
public class MyViewResolver implements ViewResolver {
    @Resource
    MyView myView;
    @Override
    public View resolveViewName(String viewName, Locale locale) throws Exception {
        System.out.println(viewName);
          return  myView;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值