视图解析

视图解析






SpringMVC视图解析

1、方法执行后的返回值会作为页面地址参考转发或者重定向到页面

2、视图解析器可能会进行页面地址的拼串;



1、任何方法的返回值,最终都会被包装成ModelAndView对象

2、processDispatchResult(processedRequest, response, mappedHandler, mv, dispatchException);来到页面的方法

视图渲染流程:将域中的数据在页面展示;页面就是用来渲染模型数据的;

3、调用render(mv, request, response);渲染页面

4、View与ViewResolver;

     ViewResolver的作用是根据视图名(方法的返回值)得到View对象;

5、怎么能根据方法的返回值(视图名)得到View对象?

protected View resolveViewName(String viewName, Map<String, Object> model, Locale locale,
            HttpServletRequest request) throws Exception {

          //遍历所有的ViewResolver;
        for (ViewResolver viewResolver : this.viewResolvers) {
          //viewResolver视图解析器根据方法的返回值,得到一个View对象;
            View view = viewResolver.resolveViewName(viewName, locale);
            if (view != null) {
                return view;
            }
        }
        return null;
    }

resolveViewName实现



返回View对象;

1、视图解析器得到View对象的流程就是所有配置的视图解析器都来尝试根据视图名(返回值)得到View(视图)对象;如果能得到就返回,得不到就换下一个视图解析器;

2、调用View对象的render方法;



 

InternalResourceView有这个方法renderMergedOutputModel;

 

将模型中的所有数据取出来全放在request域中



一句话:

视图解析器只是为了得到视图对象视图对象才能真正的转发(将模型数据全部放在请求域中)或者重定向到页面

视图对象才能真正的渲染视图







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值