gpt4 book ai didi

java - Struts2 日期时间选择器显示格式问题

转载 作者:行者123 更新时间:2023-11-28 22:14:11 25 4
gpt4 key购买 nike

我在使用 struts2.0.14 的日期时间选择器标签时遇到的问题

The problem is that struts2 datetimepicker displayformat attribute must always be set to format of tomcat server date time format else the submitted values are null.

在 Win 7 中更改日期时间设置:

  1. 右键单击右下角日期。
  2. 点击更改日期和时间设置
  3. 更改日历设置
  4. 更改区域设置
  5. 将格式设置为英语(印度)

重现步骤

  1. 如上所述更改区域设置并重新启动 tomcat 服务器。
  2. 现在不要在日期时间选择器中使用任何显示格式或使用“dd/mm/yyyy”以外的显示格式
  3. 提交日期为 21/12/2012 的 struts2 表单
  4. 在行动中提交日期设置为空
  5. 现在将区域设置更改为英语(美国)并且不使用任何显示格式并重新启动服务器。
  6. 行动中的值(value)被设置为通过表单提交。

预期结果

  1. 无论系统日期时间格式是什么,都必须相应地解析日期并使其可用。

环境:

Java 6、Struts2.0.14、Firefix 12、tomcat 6。

是否有通过属性或其他方式解决或修复的方法?

*注意:如果答案是使用 jquery 或其他一些 js 库或升级,请不要回答。

最佳答案

您需要使用自定义日期时间转换器。

在您的 xwork-conversion.properties(如果没有则创建)文件中放入此行:

java.util.Date = org.yourproject.common.StringToDateTimeConverter

在你的 StringToDateTimeConverter 中,有类似这样的代码

import java.util.*
import java.text.DateFormat.*;

public class StringToDateTimeConverter extends StrutsTypeConverter{

public Object convertFromString(Map context, String[] strings, Class toClass) {

DateFormat DATETIME_FORMAT = getDateInstance(SHORT, Locale.getDefault());

if (strings == null || strings.length == 0 || strings[0].trim().length() == 0) {
return null;
}

try
{
DATETIME_FORMAT.setLenient(false);
return DATETIME_FORMAT.parseObject(strings[0]);

} catch (ParseException e) {
//throw new TypeConversionException(); <-- if you want to catch conversion error
return null;
}
}

public String convertToString(Map context, Object date) {
DateFormat DATETIME_FORMAT = getDateInstance(SHORT, Locale.getDefault());
if (date != null && date instanceof Date) {
return DATETIME_FORMAT.format(date);
} else {
return null;
}
}
}

引用资料:

Java Date Format for Locale

http://www.roseindia.net/java/java-get-example/java-get-default-locale.shtml

关于java - Struts2 日期时间选择器显示格式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10910026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com