2012-07-31 3 views
13

jstl 루프가 있으며 양식의 날짜를 형식화하고 싶습니다. 나는 내가 좋아하는 몇 가지 제안에 대한 많은 순열을 시험해 보았으나 나는 그걸 작동시킬 수 없다. 누군가 좀 봐 주시겠습니까?fmt : formDate 작업을 수행하는 방법 : input

컨텍스트에 대한 전체 루프를 포함했지만 문제는 마지막 <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> 

내 가장 최근의 문제는 다음과 같습니다

JSPG0055E : 이름에서 XML 속성을 만들 수 없습니다 [거래는 [] 값 [$는 {loopStatus.index}]

답변

17

당신은 사용할 수 없습니다 다른 JSP 태그의 속성에있는 JSP 태그. 페이지 속성에 날짜 형식의 결과를 저장하고, (자바에서 변수로 할 것 같은)이 페이지 속성을 사용 : 당신이 사용할 수없는 봄 JSTL 태그의 최신 릴리스에서는

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

고마워요! 그것은 그것을 거의했다. 값 속성 value = "$ {valueTransactionsModel.transactions [loopStatus.index] .valueTransactionDate}"에서 모델을 참조해야했습니다. – HellishHeat

5

형태의 속성 값 : input. 시도하면 value attribute is not valid for tag <form:input> 오류가 발생합니다. 당신은 일반 HTML 입력 태그를 사용하고, 입력의 이름으로 경로를 삽입해야합니다이 경우

는이

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

미운처럼 봄 양식에 바인딩을 트리거하지만 나를 위해 작동합니다! ;)

+0

실제로 작동합니다 ... 감사합니다. D –

관련 문제