背景:
原先我在spring-mvc核心配置文件配置了1个视图解析器,这个视图解析器会给ModelAndView、return “xxx” 和springmvc的简单异常解析器返回错误页面自动添加前后缀,我的“错误页面”和需要配置视图解析器的路径不一样,这一个视图解析器还是会对异常返回的视图添加前后缀。
spring-mvc.xml
<!--视图解析器: view添加前后缀-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/pages/"/>
<property name="suffix" value=".jsp"/>
</bean>
<!--测试异常处理-->
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="defaultErrorView" value="error"/>
</bean>
这样配置,客户端访问时出现异常,我期望是:localhost/error.jsp
(访问webapp下的),而错误的view路径实际上是:localhost/pages/error.jsp
。这个视图解析器给我自动添加了。
怎么解决?
1)将错误页面移入pages包下
2)配置多个视图解析器
<!--视图解析器1:解析pages包下的-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/pages/"/>
<property name="suffix" value=".jsp"/>
<property name="viewNames" value="/pages*"/>
<property name="order" value="1"></property> <!--设置优先级-->
</bean>
<!--视图解析器2:解析webapp下的-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="suffix" value=".jsp"/>
<property name="prefix" value="/"/> <!--路径-->
<property name="order" value="0"></property> <!--设置优先级-->
</bean>
异常配置不变,然而,这样可以访问。