我迭代数据库表中的行列表,其中包含 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/