2016-12-30 12 views
1

У меня есть вопрос о @RequestMapping в Spring Boot.Как я могу получить 3 разных URL-адреса пути в @RequestMapping SpringBoot + Thymeleaf

Я хочу сделать login() метод, где зависит от роли пользователя, он будет перенаправлен на другой путь.

Например, у меня есть 3 роли для пользователя:

  • администратора
  • студент
  • учитель

В thymeleaf я с помощью формы й: действие, как:

<form th:action="@{/login}" th:object="${userR}" method="post"> 

И я делаю способ:

@RequestMapping(value = "/login", method=RequestMethod.POST) 
public String login(Model model, @ModelAttribute("userR") User user) { 

И для этих 3 ролей я всегда протоколирование в адрес/логин, но я хочу войти в

  • адрес/администратор
  • адрес/студент
  • адрес/учитель

Как установить этот URL-адрес для каждой роли?

Например, просто сделайте, если и «обратный адрес/ученик» перенаправляют меня на правильную страницу, но адрес по-прежнему «адрес/логин».

Для каждой роли будет отличаться @Controller.

+0

зачем вам нужен другой контроллер для каждой роли? можете ли вы просто проверить роль в одном контроллере? – borowis

+0

Да, я могу это сделать, но мне нужен другой контроллер для 3 разных типов пользователей. Из какой роли в настоящее время регистрируется пользователь, я проверю его в этом методе «login()» – Carath

ответ

1

Весной, когда вы возвращаете URL-адрес как «адрес/ученик», он считается прямым запросом и поэтому не будет совершать кругосветное путешествие к клиенту и, следовательно, не будет изменять URL-адрес на стороне клиента.

Если вы хотите изменить URL-адрес, запрос должен быть запрошен на переадресацию, и в этом случае запрос будет совершать кругосветное путешествие к клиенту. Это тот случай, является ли это основой сервлетов или фреймворком Spring.

И правильный способ сделать это весной, чтобы префикс URL с текстом «переадресовать:»
Например: return "redirect:xyzPage"

+0

Спасибо за ответ, это то, что я искал. – Carath

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

  • Нет связанных вопросов^_^