Jsp struts属性标记如何将java.util.Date转换为m/d/yy格式

Jsp struts属性标记如何将java.util.Date转换为m/d/yy格式,jsp,struts2,Jsp,Struts2,我的action类中有一个Date对象,当我在jsp中使用标记访问该对象时,我以m/d/yy格式获取日期,而不进行干预,为什么会发生这种情况 <s:property value="#xyz"/> where xyz is of type java.util.date show date in m/d/yy format 其中xyz的类型为java.util.date以m/d/yy格式显示日期 它没有改变任何事情:日期是一个时间点。用于创建它的格式(或选择显示它的格式)与它的值无关

我的action类中有一个Date对象,当我在jsp中使用
标记访问该对象时,我以
m/d/yy
格式获取日期,而不进行干预,为什么会发生这种情况

<s:property value="#xyz"/> where xyz is of type java.util.date show date in m/d/yy format
其中xyz的类型为java.util.date以m/d/yy格式显示日期

它没有改变任何事情:日期是一个时间点。用于创建它的格式(或选择显示它的格式)与它的值无关

由于您没有指定任何格式,因此对于浏览器在HTTP头中发送的区域设置(可能是
en_US
),框架将返回默认值(
DateFormat.SHORT

您可以阅读Struts2如何处理日期

请注意,
DateFormat.MEDIUM
format是一个标记,没有指定格式


也就是说,您可以在应用程序级别设置默认日期格式,或者在
标记中设置内联格式。

Struts识别文档部分中列出的特定对象类型,以及中的说明

如果您想知道为什么即使使用的是
标记而不是
标记,日期对象仍呈现为
m/d/yy
格式,这是因为日期是Struts2内置转换的类型之一

因此,Struts2将使用内置类型转换器来显示字符串,而不是调用Date对象的默认
toString()
方法


com.opensymphony.xwork2.conversion.impl.StringConverter
类中,Struts2将尝试使用Andrea和文档中提到的语言环境的默认格式,以有意义的方式将日期对象转换为字符串。

因为您没有使用任何格式,事实上。是的,我没有使用任何格式,但我的问题是,默认情况下,它为什么以及如何以m/d/yy格式更改?如果不发布
日期
类的代码,很难告诉您。感谢您的回答。还有一个相关问题:标记是否线程安全?通过查看StringConverter代码,它看起来是线程安全的。几天前,我在包属性中使用了date={0,date,yyyy-MM-dd},我发现结果很混乱,这给了我一个标签不是线程安全的印象。这是正确的观察吗?有关详细问题,请检查:由于操作是线程安全的,所以读取操作属性的标记(!)是线程安全的…是的,我也这么认为,但在使用标记时,我观察到并行请求的响应混乱不堪。