Spring支持Jdk提供的PropertyEditor實現數據類型的轉換。相比于Spring提供的數據轉換,PropertyEditor的使用相對簡單,不需要在xml文件中配置什么。
首先繼承PropertyEditorSupport實現其中的setAsText方法
public class DateEditor extends PropertyEditorSupport {// 將傳如的字符串數據轉換成Date類型@Overridepublic void setAsText(String text) throws IllegalArgumentException {SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");try {Date date = dateFormat.parse(text);setValue(date);} catch (ParseException e) {e.printStackTrace();}}
}
同時在Controller中添加如下的代碼:
// 在控制器初始化時注冊屬性編輯器
@InitBinder
public void initBinder(WebDataBinder binder){// 注冊自定義編輯器,將方法傳入的Dateleixng 使用 DateEditor進行轉換binder.registerCustomEditor(Date.class, new DateEditor());
}
java lang reflect invocation。@InitBinder會在控制器初始化時注冊屬性編輯器,WebDataBinder對象用于處理請求消息和處理方法的綁定工作。