Jsp 如何使fmt:formatDate为form:input工作

Jsp 如何使fmt:formatDate为form:input工作,jsp,spring-mvc,jstl,date-format,Jsp,Spring Mvc,Jstl,Date Format,我有一个jstl循环,我想格式化表单的日期:input。我在网上尝试了许多我喜欢的建议,但我就是没法让它们发挥作用。。有人能看一下吗 我已经包含了上下文的完整循环,但问题在于最后一个块 <c:forEach items="${valueTransactionsModel.transactions}" var="transaction" varStatus="loopStatus"> <tr class="${loopStatus

我有一个jstl循环,我想格式化表单的日期:input。我在网上尝试了许多我喜欢的建议,但我就是没法让它们发挥作用。。有人能看一下吗

我已经包含了上下文的完整循环,但问题在于最后一个

<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属性。您不能在另一个JSP标记的属性中使用JSP标记。请将日期格式化的结果存储在页面属性中,然后使用此页面属性(就像在Java中使用变量一样):


在最新版本的spring JSTL标记中,您不能将属性值使用到de tah form:input中。如果尝试,您将得到一个
值属性对标记无效的错误

在这种情况下,您必须使用一个普通的HTML输入标记,并将路径作为输入的名称,以触发到Spring表单的绑定,如下所示

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


难看但对我有用!;)

谢谢!差不多就是这样。我只需要在value属性value=“${ValueTransactionModel.transactions[loopStatus.index].valueTransactionDate}”中引用模型
<fmt:formatDate var="fmtDate" value="${form.bean.dateProperty}" pattern="dd/MM/yyyy"/>
<input type="text" name="bean.dateProperty" value="${fmtDate}"/>