2014-12-24 3 views
1

Я разрабатываю веб-приложение с использованием Spring mvc и Spring-security для аутентификации. Итак, у меня есть три роли: ROLE_ADMIN, ROLE_CONS и ROLE_CP И у меня есть три 404 страницы 404CP.jsp, 404Cons.jsp и 404Admin.jsp Но проблема в том, что я знаю только, как указать страницу ошибки для всего приложения, в файле web.xml:Различные страницы ошибок 404 в зависимости от роли пользователя

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

Так что я хочу знать, как указать другую страницу 404 для каждой роли

заранее спасибо

ответ

0

Попробуйте это:

ш eb.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"; 
     } 
     // ... 
    } 
} 

Страницы ошибок должны быть в директории, где ваши взгляды расположены (так, что они будут правильно решены с помощью представления распознаватель).

+0

Большое спасибо, он работает! – Simo03

Смежные вопросы