• Spring MVC 类型转换


     

    SpringMVC类型转换:

      1 日期类型转换:

      private Date birthday;
      <label for="">生日:<input type="text" name="birthday" /></label><br />

      针对日期类型,springmvc默认没有做类型转换,因此会报告400错误,此时需要配置日期类型转换器

        1.1  在pojo层添加注解:@DateTimeFormat()

            pattern:日期格式(前端传输的日期也必须是这个格式)

    @DateTimeFormat(pattern="yyyy-MM-dd")
    private Date birthday;

        1.2 自定义类型转换器

    public class DateConverter implements Converter<String, Date>{
        /**
         * 将字符串转换成日期格式,重写convert方法
         */
        @Override
        public Date convert(String source) {
            
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            try {
                sdf.setLenient(false);//是否宽松解析:默认true
                return sdf.parse(source);
            } catch (ParseException e) {
                e.printStackTrace();
            }
            return null;
        }
    }
        <!-- 配置注解驱动 -->
        <mvc:annotation-driven conversion-service="myConversion" />
    <!-- 类型转换器 --> <bean id="myConversion" class="org.springframework.format.support.FormattingConversionServiceFactoryBean"> <property name="converters"> <set> <bean class="com.roxy.springmvc.converter.DateConverter"></bean> </set> </property> </bean>

        1.3 在controller中添加方法

        @InitBinder
        public void initBinder(ServletRequestDataBinder binder){
            binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"), true));
        }

      2 对象类型转换:

        前端传递的数据为String类型,而后台处理的是对象类型

    public class UserConverter implements Converter<String, User>{
        /**
         * 将字符串转换成对象
         */
        @Override
        public User convert(String source) {
            if(source != null) {
                String[] split = source.split("|");
                if(split != null && split.length == 3) {
                    String username = split[0];
                    Integer age = Integer.parseInt(split[1]);
                    String email = split[2];
                    String birday = split[3];
                    
                    User user = new User();
                    user.setUsername(username);
                    user.setAge(age);
                    user.setEmail(email);
                    
                    return user;
                }
            }
            return null;
        }
    <bean class="com.roxy.springmvc.converter.UserConverter"></bean>
    
  • 相关阅读:
    OpenCV 最小二乘拟合方法求取直线倾角
    BFS-hdu-4101-Ali and Baba
    手机安全卫士开发系列(1)——功能列表
    【Linux常用工具】1.1 diff命令的三种格式
    手机安全卫士开发系列(2)——splash界面
    Ruby学习笔记(二)
    jQuery Animation实现CSS3动画
    HDU2699+Easy
    android中解析文件的三种方式
    查找某元素
  • 原文地址:https://www.cnblogs.com/roxy/p/7604022.html
Copyright © 2020-2023  润新知