我想将登录信息分享到另一种方法,但不知道如何。所以我用了
在Controller中弹簧注释@SessionAttributes
,然后尝试addAttribute
到
将user
保存到ModelMap
。但是当我在另一种方法中使用@ModelAttribute
时,
我的浏览器被抛出:
500 - Expected session attribute 'user'
这是我的控制器:
@Controller
@RequestMapping("/login")
@SessionAttributes("user")
public class Login {
@Resource
private UserSer userSer;
@RequestMapping("/main")
@ResponseBody
public String login (@RequestBody User user, ModelMap map) {
boolean result = userSer.login(user);
String view = "fail";
if(result) {
map.addAttribute("user", user);
view = "success";
}
return view;
}
//It doesn't work
@RequestMapping("/logout")
public String logout(@ModelAttribute("user") User user) {
System.out.println(user.getUsername());
return "success";
}
}
我是否需要配置web.xml。
答案 0 :(得分:0)
从登录方式中删除@ResponseBody。使用@ResponseBody时,返回值将直接写入响应。在这种情况下,Spring没有时间创建Session对象并保存到model属性。