2012-07-31 13 views
13

Bir jstl döngüsüm var ve bir formun tarihini biçimlendirmek istiyorum: input. İnternete düşkün olduğum bazı önerilerin çoğunu denedim ama işe yaramayacağım .. Birisi lütfen bir bakabilir mi?Nasıl fmt oluşturur: formatDate form için çalışır: giriş

Bağlam için tam döngüyü dahil ettik ama sorun son <td></td> satırında yatıyor.

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

Benim en son konudur:

JSPG0055E: adından bir xml öznitelik oluşturulamadı [işlemler [] değeri [$ {loopStatus.index}]

cevap

17

Bir kullanamazsınız JSP etiketi başka bir JSP etiketinin bir özelliğindedir. Bir sayfa özelliğindeki tarih biçimlendirme sonucu depolamak ve (eğer Java bir değişken ile yaptığımız gibi) bu sayfayı özelliğini kullanın: Eğer kullanamazsınız bahar JSTL etiketlerinin en yeni sürümlerde

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

Teşekkürler! Bu oldukça yaptı. Ben sadece modele value = value = "$ {valueTransactionsModel.transactions [loopStatus.index] .valueTransactionDate}" referansını vermem gerekiyordu. " – HellishHeat

5

de tah formuna nitelik değeri: girdi. Denerseniz, bir value attribute is not valid for tag <form:input> hatası alırsınız. Eğer normal bir HTML giriş etiketini kullanın ve girdinin adı olarak yoluna koymak gerekir Bu durumda

bu

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

Çirkin gibi Bahar forma bağlanmadan tetikleyebilir ama benim için çalışıyor için! ;)

+0

Aslında bu işe yarıyor ... teşekkürler: D –