【发布时间】:2017-12-18 19:06:19
【问题描述】:
您好,我的会话属性有问题
我有 2 个控制器类
头等舱(用户)
@Controller
@RequestMapping("users")
@SessionAttributes("activeuser")
public class UserController {
....
@RequestMapping(value = "/login", method = RequestMethod.POST)
public String loginUser(HttpServletRequest request,Model model, @ModelAttribute("userlogininfo") User loginuser,
BindingResult result, SessionStatus status) {
User activeuser = userService.checkuserlogin(loginuser.getUsername(), loginuser.getPassword());
if (activeuser!=null) {
request.getSession().setAttribute("activeuser", activeuser);
return "redirect:/home";
} else
return "redirect:/index";
}
二等(银行)
@Controller
@RequestMapping("banka")
@SessionAttributes("activeuser")
public class BankController {
....
@RequestMapping(value = "/save", method = RequestMethod.POST)
public String saveBanka(HttpServletRequest request, @ModelAttribute("banka") Banka banka, BindingResult result,
SessionStatus status) {
User user = (User) request.getSession().getAttribute("activeuser");
banka.setUser(user);
bankService.insert(banka);
return "redirect:/home";
}
}
第二类是从"(User) request.getSession().getAttribute("activeuser")"返回空值
提前感谢您的帮助。
【问题讨论】:
-
假设当 BankController 接收到 /save 方法时会话是否处于活动状态,您通常应该从会话中获取“activeuser”。要使用@SessionAttributes 中定义的属性,请尝试使用 public String saveBanka(...@ModelAttribute("activeuser") User user) 并且您应该获得会话属性
-
确保你的会话对象是可序列化的。
标签: java spring model-view-controller