求教一下SpringMVC中session存储值的问题

新手上路,请多包涵

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;
    }

}

在网上找了很多办法,但是总是不能取值,请大神们帮忙解答一下,感激不尽

阅读 4.1k
1 个回答

你确定是这么写的?@SessionAttributes({"Uname"}),应该是:@SessionAttributes("Uname")吧?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题