无法将ModelMap添加到Session

时间:2016-08-25 00:31:57

标签: java spring spring-mvc session

我想将登录信息分享到另一种方法,但不知道如何。所以我用了

在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。

1 个答案:

答案 0 :(得分:0)

从登录方式中删除@ResponseBody。使用@ResponseBody时,返回值将直接写入响应。在这种情况下,Spring没有时间创建Session对象并保存到model属性。