springMVC的类型转换器

一.局部转换器

1.说明

在作用域比较局限,将实体类的某一属性进行数据转换。

缺点:作用域只能单个实体类的某一属性。

2.写法

@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
private Date departureTime; // 出发时间

3.范例

图片

二.属性转换器

1.在前端控制器设置initBinder

//设置类型转换解决方法:属性转换器
@InitBinder//该注解是初始化加载
public void initBinder(WebDataBinder binder){

    binder.registerCustomEditor(需要转换类型的字节码文件, new DateStringEditor());

}

2.定义一个继承类

//继承 PropertiesEditor,然后重写setAsText方法
public class DateStringEditor extends PropertiesEditor {

    @Override
    public void setAsText(String text) throws IllegalArgumentException {
        try {
            //进行字符串转换为时间,第二参数为格式
            Date date = DateUtils.stringToDate(text, "yyyy-MM-dd HH:mm");
            //调用父类方法,将时间对象返回
            super.setValue(date);
        } catch (ParseException e) {
            e.printStackTrace();
        }

    }

}

3.定义一个工具类

/**
 * 日期转换类
 */
public class DateUtils {
    //定义日期转换字符串
    public static String dataToString(Date date, String patt){
        //转换为字符串形式,patt是格式
        SimpleDateFormat sdf = new SimpleDateFormat(patt);
        String new_date = sdf.format(date);
        return new_date;
    }
    //定义字符串转换日期
    public static Date stringToDate(String old_date,String patt) throws ParseException {
        //
        SimpleDateFormat sdf = new SimpleDateFormat(patt);
        Date new_date = sdf.parse(old_date);
        return new_date;
    }

}

4.范例

(1)前端控制类

图片

(2)继承类

图片

(3)工具类

图片

三.全局转换器

1.说明

顾名思义,该转换器是全局通用,但是需要配置注解声明。

2.文章内容

https://shimo.im/docs/h9gddXrJ9GRq88cv/ 《自定义类型转换器》,可复制链接后用石墨文档 App 打开

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值