有没有办法在表达式中使用片段参数?
我想创建一个片段来显示带有相应绑定错误的字段,例如喜欢:
<div th:fragment="alert (field, fieldLabel)">
<label><span th:text="${fieldLabel}">Label:</span><input type="text" th:errorclass="field_error" th:field="*{field}"/></label>
<div th:if="${#fields.hasErrors(field)}"><span th:errors="*{field}">Some error</span></div>
</div>
获取片段:
<div th:replace=":: alert (field='firstName', fieldLabel='Firstname')">Field</div>
如何在th:field和th:errors属性的表达式中使用field参数? * {field}至少不起作用。
答案 0 :(得分:9)
使用Thymeleaf 2.1我一直在使用以下内容:
声明字段:
<input type="password" th:field="*{password}" />
显示与密码相关的可能错误:
<div th:replace="util/form :: field-errors('password')"></div>
这会打印与给定字段相关的所有错误:
<div class="error-container help-block"
th:fragment="field-errors(field)"
th:if="${#fields.hasErrors('__${field}__')}">
<ul>
<li th:each="error : ${#fields.errors('__${field}__')}"
th:text="${error}" />
</ul>
</div>
答案 1 :(得分:0)
似乎至少不可能 使用th:field和th:errors,它一直试图寻找一个bean 片段的参数。
尝试为DOM对象设置局部变量
th:with="variableName=${field}"
然后尝试在表达式中使用该变量。