Java 是否可以为整个struts webapp配置统一的日期格式格式?

Java 是否可以为整个struts webapp配置统一的日期格式格式?,java,struts2,internationalization,locale,actioncontext,Java,Struts2,Internationalization,Locale,Actioncontext,在任何情况下,我都会遇到异常无法分析日期 有统一的公司日期格式标准——'dd/MM/yyyy' 存在具有不同系统区域设置的计算机。我正在使用jQueryUI作为日期选择器(它是小部件的标准,并且已经固定了css样式以匹配应用程序主题) 起初,我没有找到更好的解决方案,而是使用SimpleDateFormatobject手动将日期字符串转换为日期对象。现在我有了converter类,但仍然需要配置每个具有java.util.Date属性的操作 我正在使用XML配置,并尝试添加到struts.XML

在任何情况下,我都会遇到异常
无法分析日期

有统一的公司日期格式标准——
'dd/MM/yyyy'

存在具有不同系统区域设置的计算机。我正在使用jQueryUI作为
日期选择器
(它是小部件的标准,并且已经固定了css样式以匹配应用程序主题)

起初,我没有找到更好的解决方案,而是使用
SimpleDateFormat
object手动将日期字符串转换为日期对象。现在我有了converter类,但仍然需要配置每个具有
java.util.Date
属性的操作

我正在使用XML配置,并尝试添加到
struts.XML

<constant name="struts.date.format" value="dd/MM/yyyy" />

它不起作用

是否有任何东西可以强制所有web应用程序使用单一日期格式,而不使用区域设置—输出和输入日期的统一格式


或者如何提取Struts日期类型转换器所期望的日期格式,以便在发送到服务器之前使用JS转换日期,以符合Struts的期望?

Struts2设计为根据客户端请求的区域设置进行不同的行为

是默认侦听器堆栈的成员。因此,它负责将请求的区域设置设置为操作上下文,覆盖默认设置。如果请求参数未请求区域设置,它还将该区域设置存储到会话中,以便进一步检索该区域设置

默认类型转换器使用操作上下文的区域设置,因此将区域设置设置为操作上下文可能会覆盖可通过
struts配置的默认区域设置。区域设置
i18n
拦截器不会改变这一点

如果是这样,则无需执行其他操作,只需根据该区域设置将日期格式放入全局资源属性即可。您还可以使用动作属性,这些属性可以与
i18n
请求的区域设置一起使用,该区域设置由于不同的语言而具有不同的格式

如果您不需要用户切换语言环境的可能性,那么应该从堆栈中删除
i18n
拦截器


如何使用操作上下文的区域设置来设置日期和数字的格式:。

jQuery使用不同的日期时间模式,然后使用Struts2。在jQuery中,我可以指定日期模式。关键是要同步产生jqueryui datetimepicker的内容和期望使用struts param拦截器的DateConverter的内容。我确实尝试将日期格式添加到全局资源中,但没有成功。根据日志记录,日期属性由com.opensymphony.xwork2.conversion.impl.DateConverter类处理,该类试图使用不同的格式化程序解析日期,但其中没有一个是基于全局资源中的数据格式生成的。您不仅需要添加它,还需要使用它。这个转换器要做的第一件事是从上下文中获取一个区域设置,然后基于该区域设置创建一个格式化程序/解析器,然后执行该工作。你所需要的只是将日期格式化为正确的区域设置。我已经这样做了。我没有找到配置日期格式的方法。所以我只是调试DateConverter,以找到DateConverter可以接受的日期格式版本,并在发送到服务器之前通过js进行转换。不,您没有。我在页面上放置了一个链接,您应该按照该链接在页面上设置日期和数字的格式以及示例。我花了很多时间与文档一起尝试使用struts来使用适当的语言环境。没用。struts文档中的示例代码通常只在示例中起作用。