小编杨家勇*_*杨家勇的帖子

Spring MVC3 @SessionAttributes和@ModelAttribute将自动从请求中获取值

我正在尝试开发一个Spring MVC应用程序,现在我遇到了一个问题.登录成功后,我将User实体添加到会话并调用http://localhost:8080/user以获取会话用户.这里一切都好.但是,如果我像这样调用URL,http://localhost:8080/user?username=testuser那么会话用户的用户名将更改为testuser.我该怎么办才能从会话中获取当前用户?

代码如下

实体:

@Entity
public class User {
    private Long id;
    private String username;
    // ...Getter and Setter...
}
Run Code Online (Sandbox Code Playgroud)

控制器:

@Controller
@RequestMapping("user")
@SessionAttributes("current_user")
public class UserController {
    @RequestMapping(method=RequestMethod.GET)
    @ResponseBody
    public User testSession(@ModelAttribute("current_user") User user) {
        return user;
    }
}
Run Code Online (Sandbox Code Playgroud)

回应 http://localhost:8080/user

[{"id":1,"username":"aaa111"}]
Run Code Online (Sandbox Code Playgroud)

回应http://localhost:8080/user?username=testuser; 它应该与上面相同,但是

[{"id":1,"username":"testuser"}]
Run Code Online (Sandbox Code Playgroud)

java session spring spring-mvc

3
推荐指数
1
解决办法
1933
查看次数

标签 统计

java ×1

session ×1

spring ×1

spring-mvc ×1