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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如果表单输入没有明确使用它,如何设置Spring Form和Thymeleaf不更改作为模型属性添加的对象的字段?相关的知识,希望对你有一定的参考价值。

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

public class Owner {
    private Long id;

    private String firstName;
    private String secondName;
}

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

答案

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

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

以上是关于如果表单输入没有明确使用它,如何设置Spring Form和Thymeleaf不更改作为模型属性添加的对象的字段?的主要内容,如果未能解决你的问题,请参考以下文章

如何设置我的反应式表单日期输入值?

如果表单字段包含空格,则Spring命令对象会抛出整数字段的NumberFormatException

如果用户没有输入任何输入,如何在 Android 中的 Edittext 上设置占位符并使用它?

如何设置 xamarin 表单输入字段的禁用文本颜色?

如何在 Spring 获取之前捕获 Spring Security 登录表单?

Spring认证指南:了解如何使用 Spring 执行表单验证