【发布时间】:2017-07-08 01:22:06
【问题描述】:
如何在 Spring MVC 中更新 Session 属性?我试过这段代码:
@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";
}
}
我的测试用例:
-打开主页
-自动重定向到带有密码表单的页面
-输入密码
-自动重定向到主页,一切正常,页面打开
-刷新页面
-再次要求密码
【问题讨论】:
-
这不是
@SessionAttribute的用途。只需像往常一样使用会话属性即可。
标签: spring session model-view-controller