我在struts2.0.14的日期时间选择器标签中遇到的问题
问题在于,必须始终将struts2 datetimepicker displayformat属性设置为tomcat服务器日期时间格式,否则提交的值为null。
在Win 7中更改日期时间设置:
复制步骤
预期结果
恩维:
Java 6,Struts2.0.14,Firefix 12,tomcat 6。
是否有任何变通办法或通过属性或其他解决方法?
您需要使用自定义的DateTime转换器。
在您的文件xwork-conversion.properties(如果没有一个文件,则创建)中输入以下行:
xwork-conversion.properties
java.util.Date = org.yourproject.common.StringToDateTimeConverter
在您的中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日期格式
http://www.roseindia.net/java/java-get-example/java-get-default- locale.shtml