2012-07-31 21 views
13

Ho un ciclo jstl e voglio formattare la data di un modulo: input. Ho provato molte permutazioni di alcuni dei suggerimenti che ho appassionato online ma non riesco a farlo funzionare .. Qualcuno può dare un'occhiata?Come rendere fmt: formatDate lavoro per modulo: input

Ho incluso il ciclo completo per il contesto ma il problema si trova nell'ultimo blocco <td></td>.

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

La mia edizione più recente è:

JSPG0055E: impossibile creare un attributo XML dal nome [transazioni [] valore [$ {} loopStatus.index]

risposta

17

non è possibile utilizzare un Tag JSP in un attributo di un altro tag JSP. Memorizzare il risultato della formattazione della data in un attributo pagina e utilizzare questo attributo di pagina (come si farebbe con una variabile in Java):

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

Grazie! Questo praticamente lo ha fatto. Ho appena dovuto fare riferimento al modello nell'attributo value value = "$ {valueTransactionsModel.transactions [loopStatus.index] .valueTransactionDate}" – HellishHeat

5

nelle ultime uscite dei tag JSTL primaverili non è possibile utilizzare il valore dell'attributo nel formato deh: input. Se ci provi, riceverai un errore value attribute is not valid for tag <form:input>.

In questo caso è necessario utilizzare un normale tag input HTML e mettere il percorso come il nome dell'ingresso per attivare il legame con il modulo di primavera come questo

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

brutto, ma funziona per me! ;)

+0

In realtà questo funziona ... grazie: D –

Problemi correlati