zoukankan      html  css  js  c++  java
  • 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>
    
  • 相关阅读:
    嵌入式交叉编译环境的搭建
    linux驱动模块编写规范以及Makefiel文件的编写规范
    socket通信
    傀儡进程脱壳三步曲
    Thymeleaf 学习笔记-实例demo(中文教程)
    IntelliJ IDEA 快捷键
    github团队协作教程
    thymeleaf 学习笔记-基础篇(中文教程)
    二维码的生成
    .Net Core Web Api实践(四)填坑连接Redis时Timeout performing EVAL
  • 原文地址:https://www.cnblogs.com/roxy/p/7604022.html
Copyright © 2011-2022 走看看