小编典典

JSTL格式标签

jsp

尝试在INPUT文本字段内填充和设置日期值。我在这里做错了什么?

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

阅读 321

收藏
2020-06-08

共1个答案

小编典典

JSTL
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。)

如果您的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()}功能,则必须自己自行开发。您可以在此答案中找到启动示例。


*根据评论 *更新 为,${status.value}实际上是String格式的yyyy-MM- dd。如果无法将其修复Date为完全有价值,那么您需要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}" />
2020-06-08