java - 如果表单输入未明确使用它,如何设置 Spring Form 和 Thymeleaf 以不更改作为模型属性添加的对象字段?
问题描述
如果我有 DTO 对象,则在控制器中添加为属性模型。它有两个商业档案,比如说
public class Owner {
private Long id;
private String firstName;
private String secondName;
}
在某些春季表格中,我只想更改名字,但仍将所有者用作 DTO,而此表格根本没有第二个名字输入。而且我也不想出于隐私原因将第二个名字作为隐藏输入放置在表单中,例如,所以我只有处理表单中第一个名字的输入?有没有办法将 DTO 放置到具有名字和名字的模型中,并且在 @PostMapping 控制器方法中仍然在方法的 @ModelAttribute 参数对象中同时获得名字和名字?在这种情况下,我的第二个名字为 null。
解决方案
如果模型是通过 addAttribute("owner", owner) 将模型添加到模型属性中,则 @SessionAttribute("owner") 注释在 @Controller 标记的类上以及在控制器方法参数中使用 @ModelAttribute("owner") ownet 是有帮助的决定。使用@SessionAttribute,表单不会清除所有字段都设置为空值的数据。
需要明确命名 @ModelAttribute("named_via_here") 与 @SessionAttribute("named_via_here") 相同(没有它也可以工作,但不能保证)
推荐阅读
- google-apps-script - 如何在同一张纸上制作四个不同的时间戳?
- macos - Automator 的新快速操作不起作用
- winapi - Win32 - 如何获取给定系统光标位图的偏移量?
- ios - 如何使用 Swift 通过 PHAsset 访问 UIImage 的元数据
- continuous-integration - GitLab 管道配置
- gitlab - 如何选择安装了 docker 的共享 gitlab 运行器?
- r - 如何下载 subreddit json 文件并作为 data.frame 读入 R
- node.js - 需要帮助来构建基于时间的 Microsoft Bot 通知
- java - Sikuli编译jar文件脚本在其他电脑上运行(要求)
- python - Jacobi 方法输出错误的特征值