我有一个简单的@Controller
类,在用户登录后呈现页面:
@Controller
@SessionAttributes("user")
public class DashBoardController {
@RequestMapping(value="/user/dashBoard", method=RequestMethod.GET)
public String showDashBoardPage(@ModelAttribute("user") User user, Model model) {
//do some work here....
return "dashBoard";
}
}
Run Code Online (Sandbox Code Playgroud)
如你所见,user
属性已经存在于会话中,并且通过使用@ModelAttribute
注释我只想从那里拉出来,没有别的.但是如果你为请求添加任何参数,那么spring会尝试将此参数绑定到现有的用户对象,这不是我想要的,如何禁止这种行为?
更具体地说,这是User类:
public class User {
private String name;
private String password;
private Language language;
//public getters and setters here...
}
Run Code Online (Sandbox Code Playgroud)
如果我想更改dashBoard
页面的语言,我请求添加?language=en
参数的页面,在这种情况下,Spring会尝试更改用户模型属性的语言字段,这当然会因类型不匹配异常而失败.当然,我可以通过将参数名称更改为与任何User
字段都不匹配的内容来处理,但这似乎是一个脆弱的解决方案.有没有办法控制这种数据绑定行为?我使用Spring 4.1.3
归档时间: |
|
查看次数: |
3112 次 |
最近记录: |