2011-06-03 137 views
5

試圖填充和甲酸的輸入文本字段內的日期值。我在這裏做錯了什麼?
JSTL格式標籤

<spring:bind path="salesData.weekEndDate"> 
<input type="text" name="${status.expression}" 
value="${fmt:formateDate pattern='MM/mm/YYYY' status.value}" 
/> 

回答

13

JSTL fmt taglib存在的<fmt:xxx>標籤,而不是${fmt:xxx}功能。

修復它的相應:

<input type="text" name="${status.expression}" 
    value="<fmt:formatDate pattern="MM/dd/yyyy" value="${status.value}" />" /> 
/> 

(注意,天都被表示爲dd,不mm和年將被表示爲yyyy,不YYYY,也看到SimpleDateFormat javadoc爲所有有效模式)

如果對嵌套的標籤你的IDE抽搐(這應該運行但是完全沒有問題),或者你從它那裏得到癢,利用var屬性,使你的HTML/XML結束形成良好。

<fmt:formatDate pattern="MM/dd/yyyy" value="${status.value}" var="statusDate" /> 
<input type="text" name="${status.expression}" value="${statusDate}" /> 

如果你真的想有一個${fmt:formatDate()}功能,你必須自己homegrow它。您可以在this answer開球例子。


更新爲原來每個意見,${status.value}實際上是在格式yyyy-MM-dd一個String。如果固定它是一個fullworthy Date是不是一種選擇,那麼你就需要將其送入<fmt:formatDate>之前將其解析爲第一Date<fmt:parseDate>幫助。

<fmt:parseDate pattern="yyyy-MM-dd" value="${status.value}" var="parsedStatusDate" /> 
<fmt:formatDate pattern="MM/dd/yyyy" value="${parsedStatusDate}" var="formattedStatusDate" /> 
<input type="text" name="${status.expression}" value="${formattedStatusDate}" /> 
+0

您好BalusC,這沒有工作值= 「」 – t0mcat 2011-06-03 18:53:33

+0

什麼而不是發生什麼?你是否已經在JSP的頂部聲明瞭taglib?你是否把'YYYY'修復爲'yyyy'?請注意,我用另一種方式更新了答案。 – BalusC 2011-06-03 18:54:02

+0

fmt taglib丟失。修復它並嘗試運行。這是我的了:狀態碼500 異常類型類javax.servlet.jsp.el.E​​LException 信息嘗試轉換字符串「2002-04-15」輸入「java.util.Date」,但沒有屬性編輯器對於 類型異常javax.servlet.jsp.el.E​​LException:嘗試轉換字符串「2002-04-15」輸入「java.util.Date」,但沒有屬性編輯該類型 – t0mcat 2011-06-03 19:01:40