1

无论如何我都会得到异常Could not parse date

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

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

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

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

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

它没有用。

有什么可以强制所有 Web 应用程序在没有语言环境的情况下使用单一日期格式,只是输出和输入日期的统一格式?

或者如何提取 Struts 日期类型转换器预期的日期格式,以便我可以使用 JS 转换日期之前发送到服务器以匹配 Struts 预期?

4

1 回答 1

0

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

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

动作上下文的语言环境由默认类型转换器使用,因此将语言环境设置为动作上下文可能应该覆盖可以通过配置的默认语言环境设置,struts.locale并且i18n拦截器不会改变这一点。

如果是这样,不需要其他操作,只需根据该区域设置将您的日期格式放入全局资源属性中。由于处理本地化资源的顺序,您还可以使用可与i18n具有不同格式的请求区域设置一起使用的操作属性。

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

如何使用操作上下文的语言环境格式化日期和数字:格式化日期和数字

于 2014-04-15T13:03:18.673 回答