无法更新在Spring MVC中使用@ModelAttribute注释的对象

时间:2015-11-06 06:50:15

标签: java spring spring-mvc

我有一个方法来处理get请求,如下所示:

@RequestMapping(method = RequestMethod.GET)
public String edit(
        @ModelAttribute("deliveryFareTemplate") DeliveryFareTemplate deliveryFareTemplate,
        @RequestParam(required = true) Integer deliveryMethodId, Model model){
   DeliveryMethod deliveryMethod = deliveryMethodService.get(deliveryMethodId);
   DeliveryFareTemplate persistentEntity = deliveryFareTemplateService.get("deliveryMethodId", deliveryMethodId);
   if (persistentEntity == null) {
       // set some values manually
   } else {
       deliveryFareTemplate = persistentEntity;
   }

   return EDIT_VIEW;}

在我的情况下," persistentEntity"不为null,因此它将执行" else"片段,但在我的jsp视图中,我无法从" deliveryFareTemplate"获取任何数据,所有属性都为空。

属性" deliveryFareTemplate"将自动实例化并放入Model对象。所以我们可以在我们的视图页面中获取它。如果" persistentEntity == null"是的,手动设置数据,他们可以得到。但是为什么" deliveryFareTemplate = persistentEntity"不工作,我调试代码并在" deliveryFareTemplate"中找到数据。已更新,但仍无法进入查看页面。

1 个答案:

答案 0 :(得分:2)

使用deliveryFareTemplate = persistentEntity将persistentEntity实例分配给deliveryFareTemplate。这不行。您必须设置单个属性。像deliveryFareTemplate.copyProperties(persistentEntity)之类的东西,在这个方法中你将属性从实体复制到deliveryFareTemplate