【问题标题】:Spring data binding with and without @modelAttribute in method parameter在方法参数中使用和不使用 @modelAttribute 的 Spring 数据绑定
【发布时间】: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


【解决方案1】:

你确定这部分代码:return "list"; ???

似乎您正在返回字符串,而不是对象。尝试并发布两种情况,我还没有评论的权限=\

【讨论】:

  • 是的,我正在返回一个 jsp 名称,它将被解析为 list.jsp 的视图。我正在使用 spring 框架。
猜你喜欢
  • 2018-12-22
  • 1970-01-01
  • 2015-02-19
  • 1970-01-01
  • 1970-01-01
  • 2010-10-28
  • 1970-01-01
  • 1970-01-01
  • 2011-11-06
相关资源
最近更新 更多