不同的404错误页面取决于用户角色

时间:2014-12-24 07:38:01

标签: spring spring-mvc java-ee spring-security

我正在使用spring mvc开发一个Web应用程序,并使用spring-security进行身份验证。 所以我有三个角色:ROLE_ADMIN,ROLE_CONS和ROLE_CP 我有三个404页404CP.jsp,404Cons.jsp和404Admin.jsp 但问题是我只知道如何在web.xml文件中为整个应用程序指定错误页面:

<error-page>
    <error-code>404</error-code>
    <location>/presentation/404CP.jsp</location>
 </error-page>

所以我想知道如何为每个角色指定不同的404页面

提前致谢

1 个答案:

答案 0 :(得分:0)

试试这个:

的web.xml:

<error-page>
    <error-code>404</error-code>
    <location>/notFound</location>
</error-page>

ErrorController:

@Controller
public class ErrorController {
    @RequestMapping("/notFound")
    public String notFound(HttpServletRequest request) {
        if (request.isUserInRole("ROLE_ADMIN")) {
            return "404Admin";
        } else if (request.isUserInRole("ROLE_CONS")) {
            return "404Cons";
        }
        // ...
    }
}

错误页面必须位于您的视图所在的目录中(以便视图解析程序可以正确解析它们)。