当前位置: 首页 > 知识库问答 >
问题:

如何设置Spring表单和Thymeleaf在表单输入未显式使用时不改变作为模型属性添加的对象字段?

锺离边浩
2023-03-14

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

public class Owner {
    private Long id;

    private String firstName;
    private String secondName;
}

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

共有1个答案

於宏大
2023-03-14

如果模型是通过addatAttribute(“owner”,owner)添加到model属性的,那么@controller标记的类上的@sessionAttribute(“owner”)注释以及在controller方法参数中使用@modelAttribute(“owner”)ownet是有帮助的决策。对于@SessionAttribute,表单不会清除所有字段为空值的数据。

需要对@modelAttribute(“named_via_here”)进行与@sessionAttribute(“named_via_here”)相同的显式命名(没有它也可以工作,但不能保证)

 类似资料:
  • 问题内容: 如何使用in 将 属性设置为表单? 像这样: 我希望属性设置为 日历的 此字段 __ 问题答案: 您可以从树枝模板执行此操作:

  • 我使用thymeleaf向控制器发布表单。表单的字段是名为person的对象。在controller中,我打印这个字符串,它看起来像一个包含person中所有字段的映射<现在,我只需要person的id,这样我就可以得到person对象。我试图将参数更改为Person,但它表示无法将字符串转换为Person。我知道的唯一方法就是使用正则表达式。但我觉得这有点愚蠢。有什么简单的方法可以解决吗? 这是

  • 问题内容: 我有一个用模板渲染的输入字段,如下所示: 呈现为: 现在,假设我想向呈现的输入元素添加一个属性,我该怎么做?还是或者 问题答案:

  • 我试图在Symfony2中创建一个表单,其中包含一个文本输入字段,该字段接受一个由6位数字组成的字符串,后跟一个破折号,后跟四位数字(例如123456-7890)。它确实可以工作,但我得到的HTML标记不一致,具体取决于我如何将字段添加到表单中。 这来自实体: 从表单定义中: 从树枝模板: 这就是浏览器源代码的样子——注意模式和maxlong属性: 我想使用我自己的标签,而不是默认的,所以我改变表

  • 我正在尝试使用用户对web表单的输入创建一个用户名cookie。然而,它不起作用,我不知道为什么。你知道问题出在哪里吗?

  • 我有一个谷歌表单,我要求用户包含他们的“全名”,以保持表单简短甜蜜(没有名字/姓氏的两个输入)。您可以使用正则表达式验证谷歌表单中的答案,但我不确定从哪里开始。 我希望在输入中至少有两个单词,每个单词至少有2个字符,并且我不想屏蔽任何特殊字符(以便像O'Leary这样名字的人仍然可以编写它)。基本上,我只想确保一个字段中包含两个单词,每个单词至少有2个字母。 我没有使用正则表达式或模式的经验,因此