spring中注入时间日期(java.util.Date)类型的属性的时候不能直接注入Date类型,需要进行类型转换。
1、编写UtilDatePropertyEditor类
import java.beans.PropertyEditorSupport;
import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.Date;
public class UtilDatePropertyEditor extends PropertyEditorSupport {
private String format="yyyy-MM-dd";
@Override
public void setAsText(String text) throws IllegalArgumentException {
System.out.println("UtilDatePropertyEditor.setAsText() -- text=" + text);
SimpleDateFormat sdf = new SimpleDateFormat(format);
try{
Date d = sdf.parse(text);
this.setValue(d);
}catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void setFormat(String format) {
this.format = format;
}
}
2、在spring配置文件xml中配置自定属性编辑器
<!-- 配置自定义属性编辑器 -->
<bean id="customEditorConfigurer" class="org.springframework.beans.factory.config.CustomEditorConfigurer">
<property name="customEditors">
<map>
<entry key="java.util.Date" value="pers.h.finalproject.model.common.UtilDatePropertyEditor"/>
</map>
</property>
</bean>