thymeleaf 对象绑定可以忽略表单字段的大小写吗?
thymeleaf object binding can ignore case for form fields?
最近开始在我的应用程序中使用 thymeleaf。我正在从控制器构建一个动态表单,其中表单字段被创建为地图列表。每个键值对迭代如下。
<form th:action="#" th:object="${foo}" method="post">...
<input type="text" id=${element.key}
th:name=${element.key} th:value="${element.value}"/> ...</form>
我的 Pojo 具有符合 java 标准的小写属性。但是在构建密钥 属性 时,我的代码使用了外部文件中的大写字母,也是为了在 UI 上具有更好的可读性,而不是从大写转换为小写转换
mydata.put("KEY", 90);
.
提交页面后,我的表单元素未与 Foo class 的 属性 键绑定,因为 KEY 到键未映射。由于输入的表单字段名称为 'KEY',表单字段正在获取 null
。我怀疑在 html 页面中输入的输入文本字段获得空值的原因是由于 Foo class.
中的对象属性区分大小写
class Foo { private String key; //KEY can be a fix but naming convention is missing. }
是否有任何 thymeleaf 标签可用于在将 html-元素绑定到对象时忽略大小写?或者我应该在提交表格时使用任何 JavaScript 调整吗?比如在表单加载时发送小写字母并转换为大写字母以显示?
你可以试试${#strings.toLowerCase(element.key)}
<form th:action="#" th:object="${foo}" method="post">...
<input type="text" th:id="${#strings.toLowerCase(element.key)}" th:name=${#strings.toLowerCase(element.key)} th:value="${element.value}"/> ...
</form>
最近开始在我的应用程序中使用 thymeleaf。我正在从控制器构建一个动态表单,其中表单字段被创建为地图列表。每个键值对迭代如下。
<form th:action="#" th:object="${foo}" method="post">...
<input type="text" id=${element.key}
th:name=${element.key} th:value="${element.value}"/> ...</form>
我的 Pojo 具有符合 java 标准的小写属性。但是在构建密钥 属性 时,我的代码使用了外部文件中的大写字母,也是为了在 UI 上具有更好的可读性,而不是从大写转换为小写转换
mydata.put("KEY", 90);
.
提交页面后,我的表单元素未与 Foo class 的 属性 键绑定,因为 KEY 到键未映射。由于输入的表单字段名称为 'KEY',表单字段正在获取 null
。我怀疑在 html 页面中输入的输入文本字段获得空值的原因是由于 Foo class.
class Foo { private String key; //KEY can be a fix but naming convention is missing. }
是否有任何 thymeleaf 标签可用于在将 html-元素绑定到对象时忽略大小写?或者我应该在提交表格时使用任何 JavaScript 调整吗?比如在表单加载时发送小写字母并转换为大写字母以显示?
你可以试试${#strings.toLowerCase(element.key)}
<form th:action="#" th:object="${foo}" method="post">...
<input type="text" th:id="${#strings.toLowerCase(element.key)}" th:name=${#strings.toLowerCase(element.key)} th:value="${element.value}"/> ...
</form>