在使用webwork过程中遇到了这样一个问题:
我的domain model类包含了一个属性java.util.Date beginTime; webwork使用的model driven的方式。界面上需要显示格式是:yyyy-MM-dd HH:mm,但是用<ww:property value="beginTime"/>似乎webwork默认的转换格式是yy-MM-dd,怎样才能得到yyyy-MM-dd HH:mm呢?
|
写一个convert:
代码
package com.eruite.webapp.webwork;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import com.opensymphony.webwork.util.WebWorkTypeConverter;
import com.opensymphony.xwork.XworkException;
public class DateConverter extends WebWorkTypeConverter {
private static final SimpleDateFormat sdf = new SimpleDateFormat(
"yyyy-MM-dd HH:mm");
public Object convertFromString(Map context, String[] values, Class toClass) {
return doConvertToDate(values[0]);
}
public String convertToString(Map context, Object o) {
String result = null;
if (o instanceof Date) {
result = sdf.format(o);
}
return result;
}
private Date doConvertToDate(Object value) {
Date result = null;
if (value instanceof String) {
try {
result = sdf.parse((String) value);
} catch (ParseException e) {
throw new XworkException("Could not parse date", e);
}
}
return result;
}
}
可以添加默认的xwork-default-conversion.properties
java.util.Date=com.eruite.webapp.webwork.DateConverter
也可以写在Domain Model的converter配置里面,如Examination-conversion.properties
beginTime = com.eruite.webapp.webwork.DateConverter