jsp - 使用 Struts2 在 JSP 中格式化 Joda-Time 的日期

标签 jsp datetime struts2 jodatime datetime-format

我迭代数据库表中的行列表,其中包含 DateTime 类型的列在MySQL中如下(代码不完整版本)。

<s:iterator value="discounts" status="loopStatus">

    <joda:format var="formattedStartDate" 
                 value="${discountStartDate}" 
                 pattern="dd-MMM-yyyy HH:mm:ss" style="F-" 
                 dateTimeZone="Asia/Kolkata"/>

    <td><c:out value="${formattedStartDate}"/></td>
</s:iterator>

我们可以使用 <joda:format> 格式化日期时间吗?与 struts 标签一起?

我可以更换吗

<c:out value="${formattedStartDate}"/>

像这样的东西,

<s:property value="%{formattedStartDate}" />

它不起作用。迭代完整列表后,该列仍为空,因为实际属性为 discountStartDate在相应的模型中,<s:property>标签丢失。


其他信息:

日期格式化是通过使用 custom converter 在内部完成的但我想在这个 dd-MMM-yyyy HH:mm:ss 中显示日期我正在使用的 jQuery 日期时间选择器不接受这种格式(由转换器完成)。

因此,无法编辑 HTML 表中以指定格式列出的日期,除非在编辑行时为日期时间选择器 ( MM/dd/yyyy HH:mm:ss ) 提供了接受的格式。

请不要只是说,使用另一个可接受格式 dd-MMM-yyyy HH:mm:ss 的日期时间选择器。这种需求也可能出现在不同的地方。


实际上我需要formattedStartDate的值在<s:param>里面<s:url>但为了简单起见,我没有提到这一点。不管怎样,formattedStartDate的值应给予/分配给 Struts 标签(如果可能)。

最佳答案

如果您不使用scope <joda:format> 的属性标签的默认范围将是页面范围。为了在 Struts2 标签中获取它,请使用 #attr它将搜索页面、请求、 session ,然后是应用程序范围。

<s:iterator value="discounts" status="loopStatus">
    <joda:format var="formattedStartDate" 
                 value="${discountStartDate}" 
                 pattern="dd-MMM-yyyy HH:mm:ss" style="F-" 
                 dateTimeZone="Asia/Kolkata"/>

    <td><s:property value="#attr.formattedStartDate" /></td>
</s:iterator>

关于jsp - 使用 Struts2 在 JSP 中格式化 Joda-Time 的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21440620/

相关文章:

java - java日期什么时候崩溃?

python - 在python中转换d-m-Y

java - Struts 2 下载文件为 0 字节

java - FopFactory.newInstance() 时出现 Fop 异常

java - 当前 HTML 页面中的 JSP 响应

html - 搜索引擎 - 应用引擎

java - 如何获取当前时间并将其设置为时钟?

java - JSP - TransformerFactory.newInstance().newTransformer(xsl) 返回空值?

java - 通过 EL 3.0 (JEE7; Tomcat 8) 访问 JSP 中的静态属性或方法

java - Spring3 与 Struts2 的集成