• 09.SpringMVC之类型转换


    一. 类型转换器

    前端传入的值,从表单中传入的值,都是字符串或者是字符串数组的形式传入的,在后端需要进行手动的转换类型,然后才能正确的使用。 框架一般对常见的数据类型的转换进行了封装提供,如字符串转换成数字等。

    有标量的转换器,即字符串到数字,字符串到Boolean等。

     也有集合类型的转换器, 如数组到集合, 拼接型字符器(如,) 到集合等。

     发现,没有常用的字符串到日期 Date 的转换器。 

    1、定义转换器,实现接口Converter<From,To>

    package cn.converters;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.regex.Pattern;
    
    import org.springframework.beans.TypeMismatchException;
    import org.springframework.core.convert.converter.Converter;
    /**
     * 
     * @author 景佩佩
     *
     *S:Source 源类型
     *T:Target 目标类型
     */
    public class DateConverter implements Converter<String, Date> {
    
        public Date convert(String source) {
            //SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
            SimpleDateFormat sdf=getDateFormat(source);
            try {
                return sdf.parse(source);
            } catch (ParseException e) {
                //e.printStackTrace();
            }
            return null;
        }
    
        private SimpleDateFormat getDateFormat(String source){
            //一个字符串和一个特定形式能否匹配,正则
            SimpleDateFormat sdf=new SimpleDateFormat();
            if (Pattern.matches("^\d{4}-\d{2}-\d{2}$", source)) {
                sdf=new SimpleDateFormat("yyyy-MM-dd");
            }else if (Pattern.matches("^\d{4}/\d{2}/\d{2}$", source)) {
                sdf=new SimpleDateFormat("yyyy/MM/dd");
            }else if (Pattern.matches("^\d{4}\d{2}\d{2}$", source)) {
                sdf=new SimpleDateFormat("yyyyMMdd");
            }
            return sdf;
        }
        
    }

    2、注册转换器

     3、引用转换器

  • 相关阅读:
    tcp示例
    udp示例
    str 和 bytes
    Xamarin UIProgressView自定义
    个人用Canvas开发HTML5小游戏
    canvas画一个h5小游戏
    用canvas写一个h5小游戏
    react js踩坑之路(一)
    捣腾一下 webpack+gulp 使用姿势~
    关于移动端的适配
  • 原文地址:https://www.cnblogs.com/deityjian/p/11498002.html
Copyright © 2020-2023  润新知