考虑让两个控制器具有/admin/
和/client/
的映射。有这样的,我想将所有错误的URL重定向到这些基本路径之一。我的意思是,如果是/admin/asdadsa
,我想重定向到/admin/
但是/client/fsads
到/client/
。我怎样才能做到这一点?因为简单
<error-page>
<error-code>404</error-code>
<location>/error</location>
</error-page>
不会满足这样的要求。
答案 0 :(得分:1)
您可以从请求中读取* javax.servlet.error.request_uri *属性,以获取导致问题的URI。下面是一个关于如何利用它的小例子。
@RequestMapping("/error")
public String error(HttpServletRequest request) {
String contextPath = request.getContextPath();
String Uri = (String) request.getAttribute("javax.servlet.error.request_uri");
if (troublingUri.startsWith(contextPath + "/client/" )) {
// client
} else if (troublingUri.startsWith(contextPath + "/admin/" )) {
// admin
}
}