my97 datepicker 是实现日期型数据输入较漂亮的方式 ,现在大多数网站都使用它, 下载方式可以去官方网站直接下载, 现在的最新版本是4.2版本, 功能强大,
struts2 的流行也是非常迅速, 但struts2 中的日期选择框比较丑, 而且颜色单一,直接将两者结合起来, 会遇到格式转换方面的较多问题, 查看了一些资料,提到struts2 有强大的类型转换功能, 就写了一个转换器, 来处理字符串与date类型的转换问题. 代码如下:
/** *************************start*********************** */
package com.xxxxx.xxxx;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import org.apache.struts2.util.StrutsTypeConverter;
public class DateConverter extends StrutsTypeConverter {
@Override
public Object convertFromString(Map content, String[] values, Class toClass) {
Date date = null;
String dateString = null;
if (values != null && values.length > 0) {
dateString = values[0];
if (dateString != null) {
SimpleDateFormat format = new SimpleDateFormat(
DATE_TIME_FOMART_IE);
try {
date = format.parse(dateString);
} catch (ParseException e) {
date = null;
}
}
}
return date;
}
@Override
public String convertToString(Map context, Object o) {
// 格式化为date格式的字符串
Date date = (Date) o;
String dateTimeString = new SimpleDateFormat(DATE_TIME_FOMART_IE).format(date);
return dateTimeString;
}
private static String DATE_TIME_FOMART_IE = "yyyy-MM-dd HH:mm:ss";
private static String DATE_TIME_FOMART_FF = "yy/MM/dd hh:mm:ss";
}
/** **********************end*************************** */
并加入一个配置文件: xwork-conversion.properties
java.util.Date=com.spider.common.struts2.DateConverter
在页面里面使用:
<s:textfield name="user.date"
value="%{user.date}" cssClass="Wdate"
οnfοcus="WdatePicker({minDate:'%y-%M-%d',dateFmt:'yyyy-MM-dd HH:mm:ss'})"
label="%{getText('label.user.date')}" size="20" />
部署测试 , 一切正常 .