Controller中使用@SessionAttributes({"Uname"})传值报错:org.springframework.web.HttpSessionRequiredException: Expected session attribute 'Uname'
代码:
@SessionAttributes({"Uname"})
public class LoginAndRegistController{
@Autowired
UserService userService;
@RequestMapping(value = "/login",method = RequestMethod.POST,consumes = "application/json")
@ResponseBody
public Map isLoginSuccess(@RequestBody Map<String,String> map,String uname,ModelMap modelMap){
// System.out.println("login"+request.toString());
String password=null;
if (map.containsKey("uname")){
uname=map.get("uname");
}
if (map.containsKey("password")) {
password = map.get("password");
}
password=MD5Tool.hex32(password);
Users userTemp=userService.selectByName(uname, password);
Map<String,Object> result=new HashMap<String,Object>();
if (userTemp==null||"".equals(userTemp)){
result.put("status",1);
result.put("info","登录失败");
}else {
modelMap.addAttribute("Id", userTemp.getId());
modelMap.addAttribute("Uname", uname);
modelMap.addAttribute("Timage", userTemp.getTimage());
modelMap.addAttribute("Nick", userTemp.getNick());
result.put("status",0);
result.put("info","登录成功");
System.out.println(modelMap.addAttribute("Id"));
}
return result;
}
@RequestMapping(value = "/isSession",method = RequestMethod.POST,consumes = "application/json")
@ResponseBody
public Map isSession(@ModelAttribute("Uname") String uname,ModelMap modelMap){
// System.out.println("session"+request.toString());
HttpSession session=getSession();
Map<String,Object> map=new HashMap<String,Object>();
// System.out.println(session.getAttributeNames().toString());
if(uname!=null||"".equals(uname)){
map.put("uname",uname);
// map.put("timage", timage);
// map.put("nick", nick);
}else {
map.put("sessionStatus",1);
map.put("info","session失效");
}
return map;
}
}
在网上找了很多办法,但是总是不能取值,请大神们帮忙解答一下,感激不尽
你确定是这么写的?
@SessionAttributes({"Uname"})
,应该是:@SessionAttributes("Uname")
吧?