前端传参Date类型参数进行统一转换
/**
* 日期
*/
public class DateEditor extends PropertyEditorSupport {
/**
* 默认的日期格式
*/
private static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
/**
* 能够进行转换的日期格式
*/
public static final String[] DATE_PATTERNS = new String[] { "yyyy", "yyyy-MM", "yyyyMM", "yyyy/MM", "yyyy-MM-dd", "yyyyMMdd", "yyyy/MM/dd", "yyyy-MM-dd HH:mm:ss", "yyyyMMddHHmmss", "yyyy/MM/dd HH:mm:ss" };
/**
* 是否将空转换为null
*/
private boolean emptyAsNull;
/**
* 日期格式
*/
private String dateFormat = DEFAULT_DATE_FORMAT;
public DateEditor(boolean emptyAsNull) {
this.emptyAsNull = emptyAsNull;
}
public DateEditor(boolean emptyAsNull, String dateFormat) {
this.emptyAsNull = emptyAsNull;
this.dateFormat = dateFormat;
}
/**
* 获取日期
*/
@Override
public String getAsText() {
Date value = (Date) getValue();
return value != null ? DateFormatUtils.format(value, dateFormat) : StringUtils.EMPTY;
}
/**
* 设置日期
*/
@Override
public void setAsText(String text) {
if (text != null) {
String value = text.trim();
if (emptyAsNull && StringUtils.isEmpty(text)) {
setValue(null);
} else {
try {
setValue(DateUtils.parseDate(value, DATE_PATTERNS));
} catch (ParseException e) {
setValue(null);
}
}
} else {
setValue(null);
}
}
}