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

时间:2014-11-28 09:53:27

标签: spring-mvc thymeleaf

我正在使用Thymeleaf(thymeleaf-spring4-2.1.3)和Spring MVC(4.1.1),并且有一个这样的模型/命令对象:

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>();

在这里:没有隐藏的领域。

2 个答案:

答案 0 :(得分:0)

昨天我正在努力解决一个完全相反的问题,你的帖子帮助我走向了正确的方向!基本上,百里香在增加隐藏的领域总是,这打破了我的设计。

我发现你的帖子和这篇文章非常有用: 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>();

必须th:value添加到模板。

<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">

我希望这有帮助!

答案 1 :(得分:0)

这实际上是百里香弹簧中的一个错误。

请参阅 - https://github.com/thymeleaf/thymeleaf-spring/issues/71