java - 无法更新Spring MVC中用@ModelAttribute注释的对象

标签 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”不为空,因此它将执行“else”片段,但在我的jsp View 中,我无法从“deliveryFareTemplate”获取任何数据,所有属性均为空。

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

最佳答案

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

关于java - 无法更新Spring MVC中用@ModelAttribute注释的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33561080/

相关文章:

java - 为什么我的服务器正则表达式无法识别 Jmeter 发送的输入的结尾?

java - 使用 spring mvc 下载的 Xlsx 文件已损坏且内容类型已更改

java - Spring 4静态内容如css/js带来错误405请求方法 'GET'不支持

spring-mvc - Spring MVC : read file from src/main/resources

spring - 将tomcat重定向到本地系统中的apache

java - 在 Java 中获取十六进制颜色的名称?

java - 如何从java映射: Map<String, ArrayList<String>>获取值?

java - 哪种语言更适合计算机图形学

spring - 通过@Bean 提供的 RestTemplateBuilder 流式上传缓冲完整文件

java - 在 JSP 中上传和保存文件