【发布时间】:2017-10-03 09:23:05
【问题描述】:
我读过在方法参数中添加@modelAttribute 会将传入的数据绑定到对象,并将其作为属性添加到模型对象中。
@RequestMapping(value = "/list", method = RequestMethod.GET)
public String list(@ModelAttribute User user) {
return "list";
}
如果这是通过 /list?name=unnamed 访问的,则在 list.jsp 中可以使用 {user.name} 看到“unnamed”,因为它是作为 list.jsp 的模型属性添加的。这一点我很清楚。
如果我这样做了
@RequestMapping(value = "/list", method = RequestMethod.GET)
public String list(User user) {
return "list";
}
当通过 /list?name=unnamed 访问时,仍然可以使用 {user.name} 看到“未命名”。我认为用户对象不会被添加到模型中,因为它没有 @ModelAttribute 注释。
【问题讨论】:
-
它仍然会绑定,但您声明稍后在您的页面中无法访问它(因为它不是模型对象)其他内容,例如访问绑定结果和其他功能,这对 @987654323 很重要@ 注释的参数不适用。
-
是的,它仍然会绑定,但我的问题是它仍然被添加为 list.jsp 的模型属性,这不是我的预期行为,因为它没有 @modelAttribute 注释。
标签: spring jsp model-view-controller modelattribute