У меня есть следующий простой класс Controller с двумя методами:
@Controller
public class RegistrationController {
private RegistrationService registrationService;
@Autowired
public RegistrationController(RegistrationService registrationService){
this.registrationService = registrationService;
}
@RequestMapping(value = "/register", method = RequestMethod.POST, consumes = "application/json; charset=UTF-8")
public String register(@RequestBody Customer customer) {
registrationService.registerCustomer(customer);
return "redirect:login";
}
@RequestMapping(value = "/login", method = RequestMethod.GET)
public String login() {
System.out.println("Login page");
return "login";
}
}
Конфигурация распознавателя в виде сервлета-диспетчера:
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
<property name="prefix">
<value>/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
Когда я отправляю запрос с json body на /register
, он правильно регистрирует нового пользователя, затем он правильно перенаправляет на второй метод (в консоли я вижу «страницу входа»), но затем представление в браузере не изменить на login.jsp
. Когда я просто набираю localhost: 8080 / login, он правильно отображает страницу login.jsp
. Я также попытался вернуть new ModelAndView("login")
, но это тоже не сработало.