如何让 Thymeleaf 为 SpringBootMVC 解析布尔值? [ThymeLeaf-SpringBoot-Java17]

How to get Thymeleaf to parse boolean for SpringBootMVC? [ThymeLeaf-SpringBoot-Java17]

所以我在 HTML 中有一个硬编码的 true/false 值,所以我可以在 HTML 表单提交后使用它来填充我的一个实体的 E.bool 值(POST).

HTML

// I tried
<select id="isBool" name="isBool" class="form-select" aria-label="select">
  <option value="1">true option</option>
  <option value="0">false option</option>
</select>
// then I tried
<select id="isBool" name="isBool" class="form-select" aria-label="select">
  <option th:value="1">true option</option>
  <option th:value="0">false option</option>
</select>
// then I tried
<select id="isBool" name="isBool" class="form-select" aria-label="select">
  <option th:value="${true}">true option</option>
  <option th:value="${false}">false option</option>
</select>

实体

@Entity
@Table
public class E {
  ..
  @Column
  boolean bool
  ..
}

控制器

public String addE(@Valid E e, BindingResult result, HttpServletRequest request, Model model) {
  ...
  // no matter what, E has bool = false here :(
  ...
}

我做错了什么?无论我尝试什么,它总是错误的。

最疯狂的是,我真的可以转到我的 IntelliJ 并在调试器中看到 request.parameters 在那里有正确的值!这是怎么回事?为什么 ThymeLeaf/Spring 这么难?有没有更简单的方法通过控制器获取这样的布尔值?

令人惊讶的是,这是布尔成员字段的 getters 错误。我的 IDE 将其生成为“isBool”而不是“getBool”,显然 Thymeleaf 仅查找文字 getter 和 setter。