有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无法将ModelMap添加到会话

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

spring注释@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";
        }

    }

我需要配置网络吗。xml


共 (1) 个答案

  1. # 1 楼答案

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