jsp - JSTL 格式标签

标签 jsp jstl

尝试在 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/

相关文章:

eclipse - 在 Apache Tomcat 上运行 jsp 网页的编码问题

java - JSTL forEach 标记 : problems with enumeration, 并了解它应该如何工作

java - 带有多个参数的 Spring 消息标签

java - JSP 表单 :checkbox into a c:foreach

java - 结合 JSP servlet 和 Javascript

jsp - DisplayTag 中的总属性

java - 将对象绑定(bind)到 JSP 页面上的控件

java - JSP 中选择表单填充的问题

jsp - jSTL if else 选择/当不评估变量时

java - 如何在jsp页面中显示mysql数据库中的月份名称