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

Thymeleaf动态字段-复选框,不生成隐藏字段

阮桐
2023-03-14

我在Spring MVC(4.1.1)中使用了Thymeleaf(Tymeleaf-Spring4-2.1.3),并有一个模型/命令对象,如下所示:

public class GenericEntity {
private Map<String, Object> properties = new LinkedHashMap<String, Object>();
...
<input type="checkbox" th:field="*{properties[__${column.name}__]}" />

Thymeleaf如何确定必须生成隐藏字段?

即使我将属性更改为

private Map<String, Boolean> boolProps = new HashMap<String, Boolean>();

这里相同:没有隐藏字段。

共有1个答案

丰超
2023-03-14

昨天我正为一个完全相反的问题苦苦挣扎,而你的帖子帮助我走上了正确的方向!基本上,Tymeleaf总是添加隐藏场,这打破了我的设计。

我发现你的帖子和这篇帖子都很有用:https://github.com/thymeleaf/thymeleaf-spring/issues/68

有一条评论是16天前从今天(2014年12月12日)开始添加的。

看你的代码。您是否尝试过一些非常简单的操作,比如向类中添加另一个变量:

private boolean test;

添加getter和setter,然后尝试将其添加到模板:

<input type="checkbox" th:field="*{test}" />

检查这是否添加了隐藏字段。

private Map<String, Object> map = new HashMap<String, Object>();
<input type="checkbox" id="mapID" th:field="*{map['abc']}" th:value="123" />

我得到:

<input type="checkbox" id="mapID" value="123" name="map['abc']">
<input type="hidden" name="_map['abc']" value="on">

我希望这有帮助!

 类似资料:
  • 问题内容: 在以下情况下: 学生“隐藏人的ID字段。 如果我们想在内存中表示以下内容: 约翰对象会为storint Person.ID及其自己拥有两个单独的存储位置吗? 问题答案: 正确。示例中的每个类都有其自己的int IDid字段。 您可以通过以下方式从子类中读取或分配值: 或在外部(当它们是公开的时):

  • 排除不显示字段 Model.findAll({ attributes: { exclude: ['baz'] } });

  • 问题内容: 对于特定的用例,我必须以“旧方式”提交单个表单。意思是,我使用带有action =“”的表单。响应已流式传输,因此我不会重新加载页面。我完全知道,典型的AngularJS应用程序不会以这种方式提交表单,但是到目前为止,我别无选择。 也就是说,我尝试从Angular填充一些隐藏字段: 请注意,显示的是正确的数据值。 该表格看起来像一个标准表格: 如果我点击了提交,则没有值发送到服务器。如

  • 对于一个特定的用例,我必须以“老方法”提交一个单一的表单。意思是,我使用带有action=“”的表单。响应是流式的,所以我不会重新加载页面。我完全知道一个典型的AngularJS应用程序不会以这种方式提交表单,但到目前为止我没有其他选择。 话虽如此,我试着从Angular填充一些隐藏的字段: 请注意,数据中的正确值已显示。 表单看起来像标准表单: 如果点击submit,则不会向服务器发送任何值。如

  • 操作步骤: ①在"图层管理"模块,选择需要设置的图层,点击"更多"按钮。 ②选择"设置信息窗"按钮。 ③弹出"信息窗设置"窗口。 ④隐藏字段,将显示字段的√去掉,点击"应用"。 ⑤点击记录,弹出窗口字段已经隐藏。 字段隐藏前: 字段隐藏后: 注意 ●在不删除字段的情况下,设置信息窗中需要显示的字段,默认是全部显示。 ●标题字段无法隐藏。 操作动图: [查看原图]

  • 我使用Spring Boot和百里香叶,并尝试使用表单设置列表元素(即对象)。更准确地说,我有两个实体:聚合答案列表的问题,我将问题对象传递给模型,并尝试在迭代中设置每个答案对象。当按下保存(提交表格)时,我得到异常: 字段“答案”上对象“问题”中的字段错误:拒绝值[[答案(id=0,答案编号=1,文本=,正确=假),答案(id=0,答案编号=2,文本=,正确=假),答案(id=0,答案编号=3,