spring mvc绑定参数之 类型转换 有三种方式:

时间:2021-09-16 21:08:03

spring mvc绑定参数之类型转换有三种方式:

1.实体类中加日期格式化注解(上次做项目使用的这种。简单,但有缺点,是一种局部的处理方式,只能在本实体类中使用。方法三是全局的。)

@DateTimeFormat(pattern="yyyy-MM-dd HH:mm")
private Date creationTime;

2.属性编辑器(复杂)

spring3.1之前

在Controller类中通过@InitBinder完成

/**

  • 在controller层中加入一段数据绑定代码
    @param webDataBinder
    */
    @InitBinder
    public void initBinder(WebDataBinder webDataBinder) throws Exception{
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm");
    simpleDateFormat.setLenient(false);
    webDataBinder.registerCustomEditor(Date.class , new CustomDateEditor(simpleDateFormat , true));
    }
    备注:自定义类型转换器必须实现PropertyEditor接口或者继承PropertyEditorSupport类
    写一个类 extends propertyEditorSupport(implements PropertyEditor){
    public void setAsText(String text){
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy -MM-dd hh:mm");
    Date date = simpleDateFormat.parse(text);
    this.setValue(date);
    }
    public String getAsTest(){
    Date date = (Date)this.getValue();
    return this.dateFormat.format(date);
    }
    }

3. 类型转换器Converter

全局类型转换

参考前期课程代码