Java Spring MVC-can';在重定向后不加载视图
我有一个具有两种方法的简单控制器类:Java Spring MVC-can';在重定向后不加载视图,java,spring,spring-mvc,controller,Java,Spring,Spring Mvc,Controller,我有一个具有两种方法的简单控制器类: @Controller public class RegistrationController { private RegistrationService registrationService; @Autowired public RegistrationController(RegistrationService registrationService){ this.registrationService =
@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";
}
}
Dispatcher servlet视图解析器配置:
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
<property name="prefix">
<value>/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
/
.jsp
当我在/register
上提交一个带有json正文的请求时,它会正确地注册新用户,然后它会正确地重定向到第二个方法(在控制台中,我可以看到“登录页面”),但浏览器中的视图不会更改为Login.jsp
。当我简单地键入localhost:8080/login时,它会正确地显示login.jsp
page。我还尝试返回新的ModelAndView(“登录”),但也没有成功。选项1:
尝试返回“重定向:/login”而不是“redirect:login”
选项2:尝试为重定向提供完整的完整路径,理想情况下,您可以返回重定向:/login,这将重定向到相对于web应用程序根目录的路径-property name=“prefix”>/这就是页面不重定向的原因。。根据viewResolver,您要求它在/directory中搜索后缀为.jsp的jsp文件。但我猜。jsp文件位于webapps/WEB-INF/jsp这样的文件夹中。不久。。更改前缀目录。不,jsp在/文件夹中,因此为什么localhost:8080/login正确显示login.jsp。您测试过“重定向:/login”??是的。奇怪的是,它进入了登录方法,但没有改变浏览器中的视图。