尝试在INPUT文本字段内填充和设置日期值。我在这里做错了什么?
<spring:bind path="salesData.weekEndDate"> <input type="text" name="${status.expression}" value="${fmt:formateDate pattern='MM/mm/YYYY' status.value}" />
该JSTL fmt标签库中存在的<fmt:xxx>标签,而不是${fmt:xxx}功能。
fmt
<fmt:xxx>
${fmt:xxx}
相应地修复它:
<input type="text" name="${status.expression}" value="<fmt:formatDate pattern="MM/dd/yyyy" value="${status.value}" />" /> />
(请注意,天数应表示为dd,而不是mm,年数应表示为yyyy而不是YYYY,有关所有有效模式,请参见SimpleDateFormatjavadoc。)
dd
mm
yyyy
YYYY
SimpleDateFormat
如果您的IDE急于嵌套标记(不过应该可以很好地运行),或者您不满意它,请利用该var属性,以使HTML / XML的格式正确。
var
<fmt:formatDate pattern="MM/dd/yyyy" value="${status.value}" var="statusDate" /> <input type="text" name="${status.expression}" value="${statusDate}" />
如果您真的想拥有一个${fmt:formatDate()}功能,则必须自己自行开发。您可以在此答案中找到启动示例。
${fmt:formatDate()}
*根据评论 *更新 为,${status.value}实际上是String格式的yyyy-MM- dd。如果无法将其修复Date为完全有价值,那么您需要Date先在的帮助下<fmt:parseDate>将其解析为,然后再提供给<fmt:formatDate>。
${status.value}
String
yyyy-MM- dd
Date
<fmt:parseDate>
<fmt:formatDate>
<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}" />