如何使FMT:表单formatDate工作:输入(How to make fmt:formatDat

2019-07-30 16:57发布

我有一个JSTL循环,我想格式化表格的日期:输入。 我曾尝试一些的,我已经喜欢网上的建议许多排列,但我不能得到它的工作..是否有人可以看看吗?

我已经包括了上下文中的全循环,但问题就出在最后的<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}]

Answer 1:

你不能在另一个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}"/>


Answer 2:

在春季JSTL标签的最新版本,你不能使用该属性值成德塔赫形式:输入。 如果你尝试,你会得到一个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}"/>

丑陋,但对我的作品! ;)



文章来源: How to make fmt:formatDate work for form:input