spring 引导 MVC:如何重定向到视图
spring boot MVC: how to redirect to a view
我尝试使用 SpringBoot 和 MVC 模式创建一个 java Web 应用程序。
如何从位于我的控制器中的此类功能重定向到视图(html 页面):
@RequestMapping(value="/authentification", method= RequestMethod.POST)
public @ResponseBody void logData(LoginForm lgf){
if(diaDao.loggin(lgf.getMail(), lgf.getMdp()))
//home
else
//loginPage
}
您将无法通过这种方式重定向到页面,您返回的是响应正文。您不能在方法签名中包含 @ResponseBody,这样 spring 就会明白它应该查找页面。
你的方法需要像这样:
@RequestMapping(value="/authentification", method= RequestMethod.POST)
public String logData(LoginForm lgf){
if(diaDao.loggin(lgf.getMail(), lgf.getMdp()))
return "page_name";
else
return "page_name";
}
您还可以使用 ModelAndView 重定向到页面并仍然向该页面发送数据。因此:
@RequestMapping(value="/authentification", method= RequestMethod.POST)
public ModelAndView logData(LoginForm lgf){
ModelAndView mv = new ModelAndView("page_name1");
if(diaDao.loggin(lgf.getMail(), lgf.getMdp())) {
mv.addObject("objectX", "objectValueX");
} else {
mv.setViewName("page_name2");
mv.addObject("objectY", "objectValueY");
}
return mv;
}
我尝试使用 SpringBoot 和 MVC 模式创建一个 java Web 应用程序。 如何从位于我的控制器中的此类功能重定向到视图(html 页面):
@RequestMapping(value="/authentification", method= RequestMethod.POST)
public @ResponseBody void logData(LoginForm lgf){
if(diaDao.loggin(lgf.getMail(), lgf.getMdp()))
//home
else
//loginPage
}
您将无法通过这种方式重定向到页面,您返回的是响应正文。您不能在方法签名中包含 @ResponseBody,这样 spring 就会明白它应该查找页面。
你的方法需要像这样:
@RequestMapping(value="/authentification", method= RequestMethod.POST)
public String logData(LoginForm lgf){
if(diaDao.loggin(lgf.getMail(), lgf.getMdp()))
return "page_name";
else
return "page_name";
}
您还可以使用 ModelAndView 重定向到页面并仍然向该页面发送数据。因此:
@RequestMapping(value="/authentification", method= RequestMethod.POST)
public ModelAndView logData(LoginForm lgf){
ModelAndView mv = new ModelAndView("page_name1");
if(diaDao.loggin(lgf.getMail(), lgf.getMdp())) {
mv.addObject("objectX", "objectValueX");
} else {
mv.setViewName("page_name2");
mv.addObject("objectY", "objectValueY");
}
return mv;
}