SpringMVC视图和视图解析器实例分析


这篇“SpringMVC视图和视图解析器实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“SpringMVC视图和视图解析器实例分析”文章吧。在 springMVC 中的目标方法最终返回都是一个视图(有各种视图).返回的视图都会由一个视图解析器来处理 (视图解析器有很多种)在默认情况下,我们都是返回默认的视图, 然后这个返回的视图交由 SpringMVC 的 InternalResourceViewResolver 视图处理器来处理的在实际开发中,我们有时需要自定义视图,这样可以满足更多更复杂的需求1.配置 springDispatcherServlet-servlet.xml , 增加自定义视图解析器2.创建自定义视图类3.创建goodsHandler测试4.创建my_view.jsp是从自定义视图来的..5.测试效果自定义视图: 创建一个 View 的 bean, 该 bean 需要继承自 AbstractView, 并实现 renderMergedOutputModel 方法.并把自定义 View 加入到 IOC 容器中自定义视图的视图处理器,使用 BeanNameViewResolver, 这个视图处理器也需要配置 到 ioc 容器BeanNameViewResolver 的调用优先级需要设置一下,设置 order 比 Integer.MAX_VAL 小的值. 以确保其在 InternalResourceViewResolver 之前被调用1. SpringMVC 调用目标方法, 返回自定义 View 在 IOC 容器中的 id
1. SpringMVC 调用 BeanNameViewResolver 解析视图: 从 IOC 容器中获取 返回 id 值对应的 bean, 即自定义的 View 的对象
1. SpringMVC 调用自定义视图的 renderMergedOutputModel 方法渲染视图
1. 说明: 如果在 SpringMVC 调用目标方法, 返回自定义 View 在 IOC 容器中的 id, 不存在, 则仍然按照默认的视图处理器机制处理
1. 如果将默认视图解析器设置的优先级比自定义视图高,默认视图解析器不管页面是否存在都会直接返回,不会在走自定义视图解析器。自定义 View在IOC容器中的 id存在时,自定义视图解析器执行流程:自定义 View在IOC容器中的 id不存在时,自定义视图解析器执行流程通用会先执行BeanNameViewResolver,可以看到此时,容器中不包含id=”view”的bean回到DispatcherServlet我们可以看到 List viewResolvers列表包含两个视图解析器,一个时自定义的视图还有一个是默认的视图解析器。如果返回的自定义视图为空,会继续遍历最终初始化默认视图解析器从而按照默认视图解析器的处理机制继续执行,不管/WEB-INF/pages/view.jsp 是否存在程序都会返回目标方法中指定转发或者重定向默认返回的方式是请求转发,然后用视图处理器进行处理,比如在目标方法中这样写:也可以在目标方法直接指定重定向或转发的 url 地址如果指定重定向,不能定向到 /WEB-INF 目录中应用实例-代码实现修改 GoodsHandler.java, 增加方法 order()2.修改view.jsp1.SpirngMVC默认情况下可以看到默认转发是走的InternalResourceView默认视图解析器,beanName=my_view.jsp 对应的实例则是InternalResourceView最终执行到InternalResourceView的renderMergedOutputModel方法中dispatcherPath=/WEB-INF/pages/my_view.jsp.jsp进行请求转发2.指定forward关键字在DispatcherServlet中我们可以看到,当我们指定了forward关键字时,viewResolver还是默认的InternalResourceView,和不指定forward关键字不同的地方子在于,指定了关键字后beanName变成了forward: 而url则是我们后面指定的路径,因此我们在使用forward关键字进行请求转发时,SpringMVC底层会根据程序员在后面指定的路径进行请求转发,如果设置的路径不存在则会抛出404NOTFOUND异常在前面我们配置了自定义视图和默认视图解析器,可以看到这里走的是默认的视图解析器。redirect: 被作为beanName, RedirectView则是对应的bean实例从里可以看出在SpringMvc中,重定向”redirect:/login.jsp” ,斜杠被浏览器解析成ip:port,而在服务端springmvc底层RedirectView会解析成“/springmvc/login.jsp”RedirectView以上就是关于“SpringMVC视图和视图解析器实例免费云主机域名分析”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注百云主机行业资讯频道。

相关推荐: php如何用循环实现n的阶乘

这篇文章主要介绍“php如何用循环实现n的阶乘”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php如何用循环实现n的阶乘”文章能帮助大家解决问题。 php用循环实现n的阶免费云主机域名乘的方法:1、新建一个php示例文…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 03/15 16:35
Next 03/15 16:35

相关推荐