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>
    
  • 相关阅读:
    视频流媒体服务器网络硬盘录像机NVR接入/解码/转发能力解析
    流媒体服务器安装失败/程序启动错误等问题解决方案
    监控摄像头如何用作网络直播?
    数据库之单表查询
    数据库之表与表之间的关系
    数据库之完整性约束
    数据库之数据类型
    数据库之增删改查操作
    数据库之基本操作和存储引擎
    数据库之数据库基础及安装
  • 原文地址:https://www.cnblogs.com/roxy/p/7604022.html
Copyright © 2011-2022 走看看