我有一个处理获取请求的方法,如下所示:

@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”获取任何数据,所有属性均为null。

属性“ deliveryFareTemplate”将自动实例化并放入Model对象。因此,我们可以在视图页面中获取它。并且,如果“ persistentEntity == null”为true,则手动设置数据即可。但是,为什么“ deliveryFareTemplate = persistentEntity”不起作用,我调试了代码,发现“ deliveryFareTemplate”中的数据已更新,但仍然无法在视图页面中获取。

最佳答案

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

10-04 10:00