下午好.几天来在这个问题上苦苦挣扎.我想帮助Spring Bean(解析器)捕获应用程序中的所有错误.捕获异常几乎立即发生,但是捕获HTTP错误不会被处理.
问题解决程序的本质不能拦截http错误.
我不想使用web.xml和控制器,因为我希望该决定仍在使用Spring上下文.
捕获异常的实现:
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionMappings">
<map>
...
<entry key="java.lang.Throwable" value=".error" />
</map>
</property>
<property name="defaultErrorView" value=".error"/>
</bean>
最佳答案
我在web.xml中为40x错误设置了映射,然后在控制器中处理它们(扩展了SimpleMappingExceptionResolver并处理了500个)
<error-page>
<error-code>404</error-code>
<location>/404</location>
</error-page>
@RequestMapping(value = "/404")
public String handle404(final HttpServletRequest request, final Model model) {
final String originalUri = (String)
request.getAttribute("javax.servlet.forward.request_uri");
// etc.
return "404";
}
我对同一件事有疑问here