如果表单输入没有明确使用它,如何设置Spring Form和Thymeleaf不更改作为模型属性添加的对象的字段?

问题描述 投票:0回答:1

如果我有DTO对象,则在控制器中添加为属性模型。比方说它有两个业务文件

public class Owner {
    private Long id;

    private String firstName;
    private String secondName;
}

在某些弹簧形式中,我想仅使用所有者作为DTO更改名字,并且此表单根本没有输入第二个名称。而且我也不想出于隐私原因将第二个名称作为隐藏输入放在表单中,例如,所以我有唯一的输入来处理表单中的第一个名字?有没有办法将DTO放在具有第一个和第二个名称的模型中,并且@PostMapping控制器方法仍然在方法的@ModelAttribute参数对象中获得第一个和第二个名称?在这种情况下,我得到第二个名称null。

java spring spring-mvc thymeleaf spring-form
1个回答
0
投票

如果模型通过addAttribute(“owner”,owner)添加到模型属性,@ Controller标记的类上的@SessionAttribute(“owner”)注释以及在控制器方法参数中使用@ModelAttribute(“owner”)ownet是有帮助的决定。使用@SessionAttribute时,表单不会清除数据,并将所有字段设置为空值。

@ModelAttribute(“named_via_here”)的明确命名与@SessionAttribute(“named_via_here”)相同是必需的(没有它可以工作,但不能保证)

© www.soinside.com 2019 - 2024. All rights reserved.