Spring-Boot Thymeleaf 绑定枚举在隐藏字段

Posted

技术标签:

【中文标题】Spring-Boot Thymeleaf 绑定枚举在隐藏字段【英文标题】:Spring-Boot Thymeleaf Binding Enum at hidden field 【发布时间】:2017-08-24 18:49:11 【问题描述】:

我想在一个隐藏字段绑定一个枚举,以便在提交表单时保留信息。不知何故,枚举的字段为空。

我的对象看起来像:

public class Check 
    @NotNull        private String name;
    @NotNull        private CheckType type; // ENUM with GETTER & SETTER

    // BESIDE NORMAL GETTER & SETTER ANOTHER TRY ...
    public String getTypeName() 
        return type == null ? null : type.name();
    

    public void setTypeName(String name) 
        type = CheckType.valueOf(name);
    

    ...

在我的 Thymeleaf-Template 中,我正在遍历对象并希望保留枚举:

<input type="hidden" th:field="*checks[__$checkStat.index__].type" />       

<!-- ALSO TRIED ... -->
<input type="hidden" th:field="*checks[__$checkStat.index__].typeName" />

发送Form后,type为null。我错过了什么?

【问题讨论】:

【参考方案1】:

好的,我有问题,但在我的问题中看不到。枚举映射有效,但我在课堂上也有类似:

public Integer getSpecialValue() 
    if (type == SOMETHING) 
        return rareEventThreshold;
     else 
        throw new IllegalStateException();
    


// EQUALS TO SETTER

事实上,我无法相信调用 Getter 和 Setter 的顺序,所以这不是一个好主意。我现在将使用带有“普通”Getter 和 Setter 的 DTO 对象,没有任何逻辑。

【讨论】:

以上是关于Spring-Boot Thymeleaf 绑定枚举在隐藏字段的主要内容,如果未能解决你的问题,请参考以下文章

thymeleaf 和 spring-boot 丢失的复杂对象

Spring-boot,thymeleaf 加载上传的图片,无需重启应用服务器

Spring-boot(二)--thymeleaf

Spring-Boot + Spring-MVC + Thymeleaf + Apache Tiles

Thymeleaf 无法检测到 spring-boot 项目中的模板

thymeleaf + spring-boot 验证错误未显示在 html 上