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

问题描述 投票:0回答:1

在任何情况下,id获取异常Could not parse date

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

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

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

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

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

它没用。

是否有任何可以强制所有Web应用程序使用单一日期格式而没有区域设置只是输出和输入日期的统一格式?

或者我如何提取struts日期类型转换器所期望的日期格式的方式,所以我可以使用js转换日期之前发送到服务器以匹配struts期望?

java struts2 internationalization locale actioncontext
1个回答
0
投票

Struts2的设计根据客户端请求的区域设置而有所不同。

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

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

如果是这样,则不需要其他操作,只需根据该语言环境将日期格式设置为全局资源属性。您还可以使用可与i18n请求的区域设置一起使用的操作属性,该区域设置由于order of processing localization resources而具有不同的格式。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.