0

我正在使用 RESTful 请求开发一个新的 Spring MVC 应用程序。该应用程序执行标准数据库加载对象、绑定值和保存。为了不丢失表单上不可用的对象值,我使用@ModelAttribute 方法在绑定之前预加载对象。

使用 URL 加载代理时

/agency/418

我的@ModelAttribute 方法现在可以学习“418”ID。我的理解是只能处理常规请求属性,所以我的 URL 需要是

/agency/418?id=418

这有点打破了 RESTful 模式。发布数据时也是如此。

有人可以评论这个观察吗……我错过了什么吗?

谢谢西蒙

4

2 回答 2

1

您可以很好地使用路径变量来初始化模型属性:

@controller
public controller {
   @modelattribute("model")
   public Entity initentity(@pathvariable integer id) {
     return dao.getentity(id);
   }

   @requestmapping("/{id}")
   public String somerequest(@modelattribute("model") Entity entity) {
      ....
   }      
}
于 2013-03-01T23:46:05.017 回答
0

我们放弃了在 Spring 2 中使用 @ModelAttribute 替换过去的“formBackingObject”的想法。相反,我们使用普通表单对象类进行表单绑定,然后将值复制到持久实体。表单对象可以由 Spring 即时创建,因此我们不再需要 @ModelAttribute 来加载数据库。该主题包含在Spring MVC 是否需要将实体复制/粘贴到 FormObject 中?.

于 2013-03-07T19:35:20.520 回答