尝试在 INPUT 文本字段中填充和格式化日期值。我在这里做错了什么?
<spring:bind path="salesData.weekEndDate">
<input type="text" name="${status.expression}"
value="${fmt:formateDate pattern='MM/mm/YYYY' status.value}"
/>
最佳答案
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()}
功能,你必须自己在家种植它。您可以在 this answer 中找到启动示例.更新 根据评论结果,
${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}" />
关于jsp - JSTL 格式标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6231288/