springMVC无法接收date类型数据的全局处理方

来源:互联网 发布:高达模型淘宝店 编辑:程序博客网 时间:2024/06/07 01:43

1.编写工具类

import java.beans.PropertyEditorSupport;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class SpecialDateEditor extends PropertyEditorSupport {    private final Logger logger = LoggerFactory.getLogger(getClass());       @Override      public void setAsText(String text) throws IllegalArgumentException {          SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");          Date date = null;          try {              //防止空数据出错              if(StringUtils.notNull(text)){                  date = format.parse(text);              }          } catch (ParseException e) {              format = new SimpleDateFormat("yyyy-MM-dd");              try {                  date = format.parse(text);              } catch (ParseException e1) {                  format = new SimpleDateFormat("yyyy-MM");                           try{                      date = format.parse(text);                  }catch (Exception e2) {                      logger.error("自动绑定日期数据出错", e);                  }              }          }          setValue(date);      }  }

2.创建BaseController,其他Controller都要继承它,并在BaseController中写入

@InitBinderpublic void initBinder(ServletRequestDataBinder binder) {    /**      * 自动转换日期类型的字段格式      */     binder.registerCustomEditor(Date.class, new SpecialDateEditor());}

如此,在springMVC中全局实现model或bean中date类型数据的接收。

阅读全文
1 0
原创粉丝点击