如何在Spring MVC中更新会话属性
如何在SpringMVC中更新会话属性?我尝试了以下代码:如何在Spring MVC中更新会话属性,spring,session,model-view-controller,Spring,Session,Model View Controller,如何在SpringMVC中更新会话属性?我尝试了以下代码: @Controller @RequestMapping("/panel") @SessionAttributes({"access"}) public class AdminController extends ErrorsController { private final static String SECURE_ADMIN_PASS = "123123"; @ModelAttribute("access") public Bo
@Controller
@RequestMapping("/panel")
@SessionAttributes({"access"})
public class AdminController extends ErrorsController {
private final static String SECURE_ADMIN_PASS = "123123";
@ModelAttribute("access")
public Boolean getAccess() {
return false;
}
@RequestMapping(value = {"/", ""}, method = RequestMethod.GET)
public String adminGeneralPage(@ModelAttribute("access") boolean access) {
if (!access) return "adminPages/enterPassword";
return "adminPages/home";
}
@RequestMapping(value = "/password", method = RequestMethod.POST)
public String enterPassword(@ModelAttribute("access") boolean access,
@RequestParam("password") String password, HttpServletRequest request) {
if (password.equals(SECURE_ADMIN_PASS)) {
request.getSession().setAttribute("access", true);
return "adminPages/home";
}
return "adminPages/enterPassword";
}
}
我的测试用例:
-打开主页
-自动重定向到带有密码的页面表单
-输入密码
-自动重定向到主页面,一切正常,页面打开
-刷新页面
-再次请求密码如下更新您的enterPassword()方法:
@RequestMapping(value = "/password", method = RequestMethod.POST)
public String enterPassword(HttpServletRequest request, Model model, @ModelAttribute("access") boolean access,
@RequestParam("password") String password) {
if (password.equals(SECURE_ADMIN_PASS)) {
model.addAttribute("access", true);
return "adminPages/home";
}
return "adminPages/enterPassword";
}
这不是
@SessionAttribute
的目的。只需像通常那样使用会话属性。