如果我有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”)相同是必需的(没有它可以工作,但不能保证)