这几天弄毕设,在网上找的开源代码,在此基础上改的时候,发现后端接口无论是报500还是404,最后都会跳转到404界面。
web.xml配置
<error-page>
<error-code>500</error-code>
<location>/WEB-INF/views/common/500.jsp</location>
</error-page>
<error-page>
<error-code>400</error-code>
<location>/WEB-INF/views/common/400.jsp</location>
</error-page>
<error-page>
<error-code>403</error-code>
<location>/WEB-INF/views/common/403.jsp</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/WEB-INF/views/common/404.jsp</location>
</error-page>
最后跟源码,发现在报500错误之后,转发到500错误界面的时候,url错误(/WEB-INF/viewscommons/500.jsp),导致找不到500界面,导致又抛了404错误,从而跳转到了404界面,最后发现spring-mvc.xml里的一段配置有误,如下;
<!-- 3.视图名称解析器:配置ViewResolver,定义跳转的文件的前后缀 。 可以用多个ViewResolver。 使用order属性排序。 InternalResourceViewResolver放在最后。 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 这里的配置我的理解是自动给后面action的方法return的字符串加上前缀和后缀,变成一个 可用的url地址 -->
<property name="prefix" value="/WEB-INF/views" />
<property name="suffix" value=".jsp" />
</bean>
结果:/WEB-INF/views改为/WEB-INF/views/就好了,少了一个"/"。