2014-02-28 41 views
3

有沒有在表達式中使用片段參數的方法?Thymeleaf:如何在表達式中使用片段參數

我想創建一個片段來顯示帶有相應綁定錯誤的字段,例如像:

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

如何使用在第i個表達式的字段參數:場和TH:錯誤的屬性? * {field}至少不起作用。

回答

7

隨着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

'_ _ $ {field} _ _'這樣做,謝謝。 – James

0

看來,使用th:field和th:errors不可能發現至少 ,它總是試圖尋找一個bean的代替片段的參數 。

嘗試設置一個局部變量的DOM對象

th:with="variableName=${field}" 

的,然後嘗試使用變量表達式。

+0

可否請您添加完整的代碼?謝謝 – Roxana

相關問題