SpringMVC:多视图解析器配置以及问题
2021-01-02 13:29
标签:自己 code www 目录 eem Fix prope text RKE 参考文章:https://www.cnblogs.com/daxin/p/3551537.html 在SpringMVC模式当中可以通过如下配置来支持多视图解析 首先可以使用order属性进行设置 系统首先按解析器的order值进行查找 首先使用FreeMarkerViewResolver解析器调用canHandle方法,判断当前解析器对视图是否能够解析。如不能解析在依次调用。 1、springmvc配置文件 2、静态页面 3、Controller接口 可以成功跳转! 关于springmvc多视图解析器解析的问题: 假设我现在有两个jsp页面,分别在其它的目录下怎么办: 1、WEB-INF/A/a.jsp 2、WEB-INF/B/b.jsp
但是报404,因为jsp目录下没有a.jsp这个页面,显然返回的视图名有一开始定义的视图解析器处理了。 那要如何按照自己的设想进行跳转呢? 最简单的办法是使用其viewNames属性,来指定一个是否可以处理的规则 如上两个的意思是对A或B开头的视图名进行处理,比如返回的视图名为A/a(或者A_a) 那么会交给viewNames为A*的那个解析器处理;支持的规则可以查看javadoc。 新增两个视图解析器,注意默认的视图解析器(就是没有设置viewNames属性的),必须放在新增的视图解析器的后面。 否则返回的页面还是由默认的视图解析器解析的,就会导致404。
如果就想要默认的视图解析器写在最上面该怎么办,我们可以通过设置视图解析器的顺序。 成功! SpringMVC:多视图解析器配置以及问题 标签:自己 code www 目录 eem Fix prope text RKE 原文地址:https://www.cnblogs.com/zxhbk/p/12994433.html
多个视图解析器的配置
bean id="JSPViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
property name="viewNames" value="*jsp" />
property name="contentType" value="text/html; charset=utf-8"/>
property name="prefix" value="/" />
property name="suffix" value="" />
property name="order" value="1">property>
bean>
bean id="FMViewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
property name="viewClass" value="org.springframework.web.servlet.view.freemarker.FreeMarkerView"/>
property name="viewNames" value="*html" />
property name="contentType" value="text/html; charset=utf-8"/>
property name="cache" value="true" />
property name="prefix" value="/" />
property name="suffix" value="" />
property name="order" value="0">property>
bean>
具体使用
单个视图解析器:
bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
property name="prefix" value="/WEB-INF/jsp/" />
property name="suffix" value=".jsp" />
bean>
问题,如果jsp页面不在jsp目录下,怎么跳转?
解决方案
多视图解析器配置
controller层
SpringMVC配置
bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
property name="viewNames" value="A*"/>
property name="prefix" value="/WEB-INF/"/>
property name="suffix" value=".jsp"/>
bean>
bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
property name="viewNames" value="B*"/>
property name="prefix" value="/WEB-INF/"/>
property name="suffix" value=".jsp"/>
bean>
bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
property name="prefix" value="/WEB-INF/jsp/" />
property name="suffix" value=".jsp" />
bean>
注意点
bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
property name="order" value="2"/>
property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
property name="prefix" value="/WEB-INF/jsp/" />
property name="suffix" value=".jsp" />
bean>
bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
property name="order" value="1"/>
property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
property name="viewNames" value="A*"/>
property name="prefix" value="/WEB-INF/"/>
property name="suffix" value=".jsp"/>
bean>
bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
property name="order" value="1"/>
property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
property name="viewNames" value="B*"/>
property name="prefix" value="/WEB-INF/"/>
property name="suffix" value=".jsp"/>
bean>
文章标题:SpringMVC:多视图解析器配置以及问题
文章链接:http://soscw.com/index.php/essay/39590.html