2012-07-31 33 views
13

Tôi có vòng lặp jstl và tôi muốn định dạng ngày của biểu mẫu: đầu vào. Tôi đã thử nhiều hoán vị của một số gợi ý mà tôi thích trực tuyến nhưng tôi không thể làm cho nó hoạt động được .. Có thể ai đó vui lòng xem không?Cách tạo fmt: formatDate làm việc cho biểu mẫu: nhập

Tôi đã bao gồm toàn bộ vòng lặp cho ngữ cảnh nhưng vấn đề nằm trong khối <td></td> cuối cùng.

<c:forEach items="${valueTransactionsModel.transactions}" var="transaction" varStatus="loopStatus"> 

         <tr class="${loopStatus.index % 2 == 0 ? 'even' : 'odd'}"> 
          <spring:message code="valueTransactions.transactionType" var="transactionTypeLbl" /> 
          <tags:dropdown id="transactionTypeId${loopStatus.index}" path="transactions['${loopStatus.index}'].valueTransactionType.id" 
           fieldName="${transactionTypeLbl}" classStyle="mandatory" items="${transactionTypes}" itemLabel="value"/> 
         </tr> 
         <tr class="${loopStatus.index % 2 == 0 ? 'even' : 'odd'}"> 
          <spring:message code="valueTransactions.transactionAmount" var="valueTransactionAmountLbl${loopStatus.index}" /> 
          <tags:input id="transactionAmountId${loopStatus.index}" 
           path="transactions['${loopStatus.index}'].valueTransactionAmount" 
           fieldName="valueTransactionAmountLbl${loopStatus.index}" 
           maxlength="30" classStyle="mandatory" /> 
          <spring:message code="valueTransactions.transactionDate" 
           var="valueTransactionDateLbl${loopStatus.index}" /> 
          <td> 
           <form:input type="text" path="transactions['${loopStatus.index}'].valueTransactionDate" cssClass="mandatory" value="<fmt:formatDate value="transactions['${loopStatus.index}'].valueTransactionDate" type="date" pattern="yyyy-MM-dd"/>" /> 
          </td> 
         </tr> 


      </c:forEach> 

vấn đề gần đây nhất của tôi là:

JSPG0055E: Không thể tạo một thuộc tính xml từ tên [giao dịch [] Giá trị [$ {loopStatus.index}]

Trả lời

17

Bạn có thể không sử dụng một Thẻ JSP trong thuộc tính của một thẻ JSP khác. Lưu trữ các kết quả của các định dạng ngày tháng trong một thuộc tính trang, và sử dụng thuộc tính trang (như bạn sẽ làm gì với một biến trong Java):

<fmt:formatDate value="transactions['${loopStatus.index}'].valueTransactionDate" 
       type="date" 
       pattern="yyyy-MM-dd" 
       var="theFormattedDate" /> 
<form:input type="text" path="..." value="${theFormattedDate}"/> 
+1

Cảm ơn! Điều đó khá nhiều. Tôi chỉ cần tham khảo mô hình trong giá trị thuộc tính giá trị = "$ {valueTransactionsModel.transactions [loopStatus.index] .valueTransactionDate}" – HellishHeat

5

Trong các phiên bản mới nhất của các thẻ JSTL mùa xuân bạn không thể sử dụng giá trị thuộc tính vào biểu mẫu de tah: đầu vào. Nếu bạn cố gắng, bạn sẽ gặp lỗi value attribute is not valid for tag <form:input>.

Trong trường hợp này bạn phải sử dụng một thẻ đầu vào HTML bình thường và đặt đường dẫn như tên của các đầu vào để kích hoạt các liên kết với các hình thức mùa xuân như thế này

<fmt:formatDate var="fmtDate" value="${form.bean.dateProperty}" pattern="dd/MM/yyyy"/> 
<input type="text" name="bean.dateProperty" value="${fmtDate}"/> 

Ugly nhưng làm việc cho tôi! ;)

+0

Thực ra công việc này ... cảm ơn bạn: D –

Các vấn đề liên quan