2011-06-03 107 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