15

jstl ループがあり、form: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: 名前 [transactions[] 値 [${loopStatus.index}] から xml 属性を作成できません

4

2 に答える 2

22

別の JSP タグの属性で JSP タグを使用することはできません。日付の書式設定の結果をページ属性に格納し、このページ属性を使用します (Java で変数を使用する場合と同様)。

<fmt:formatDate value="transactions['${loopStatus.index}'].valueTransactionDate"  
                type="date" 
                pattern="yyyy-MM-dd"
                var="theFormattedDate" />
<form:input type="text" path="..." value="${theFormattedDate}"/>
于 2012-07-31T08:41:12.297 に答える
9

spring JSTL タグの最新リリースでは、属性値を de tah form:input に使用することはできません。しようとすると、value attribute is not valid for tag <form:input>エラーが発生します。

この場合、通常の HTML 入力タグを使用し、パスを入力の名前として配置して、このように Spring フォームへのバインディングをトリガーする必要があります。

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

醜いが、私のために働く!;)

于 2014-02-12T18:02:02.897 に答える