• Spring MVC处理参数Convert


    Springmvc.xml

    配置convert,xml中配置多个相同的泛型时,xml里配置的convert会从上到下挨个执行。

        <!-- 配置注解驱动,并配置convert -->
        <mvc:annotation-driven conversion-service="myConversionService"/>
    
        <!-- 配置多个convert -->
        <bean id="myConversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">   
             <property name="converters">
                 <list>
                     <bean class="com.gmtx.system.convertre.DateConverter"/>
                     <bean class="com.gmtx.system.convertre.TimestampConverter"/>
                     <bean class="com.gmtx.system.convertre.NumberConverter"/>
                     <bean class="com.gmtx.system.convertre.BooleanConverter"/>
                     <bean class="com.gmtx.system.convertre.IntegerConverter"/>
                     <bean class="com.gmtx.system.convertre.FloatConverter"/>
                     <bean class="com.gmtx.system.convertre.DoubleConverter"/>
                     <bean class="com.gmtx.system.convertre.LongConverter"/>
                     <bean class="com.gmtx.system.convertre.ShortConverter"/>
                     <bean class="com.gmtx.system.convertre.CharConverter"/>
                     <bean class="com.gmtx.system.convertre.StringConvert"/>
                     <!-- DateTimeConverter和DateConverter都是处理成Date类型,前者是处理成年月日,后者是处理成yyyy-MM-dd HH:mm:ss,先用前面一个再用后面一个,最终以后面的为准 -->
                     <bean class="com.gmtx.system.convertre.DateTimeConverter"/>
                 </list>
             </property>
         </bean>    

    创建Convert

    新建一个时间字符串转时间戳的convert。

    implements Converter<String, Timestamp>这里的泛型一定要写,这里决定了你需要 使用哪个convert。xml中配置多个相同的泛型时,xml里配置的convert会从上到下挨个执行。

    package com.gmtx.system.convertre;
    
    import java.sql.Timestamp;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    import org.springframework.core.convert.converter.Converter;
    
    /**
     * 時間轉時間戳
     */
    public class TimestampConverter implements Converter<String, Timestamp> {
    
        public Timestamp convert(String timeStr) {
            Timestamp t = null;
            if (timeStr!=null && timeStr != "") {
                 SimpleDateFormat format =  new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
                 Date date = null;
                try {
                    date = format.parse(timeStr);
                } catch (ParseException e) {
                    e.printStackTrace();
                }
                //日期转时间戳(毫秒)
                t = new Timestamp(date.getTime());
            }
            return t;
        }
    }

    使用Convert

    在Controller中使用,dt的类型决定使用哪个Convert,前面的@RequestParam在参数名和变量名一样的时候可以不写。

    @Controller
    @RequestMapping("/common")
    public class CommonController {
        
        /**
         * @param dt dt的class类型决定使用哪个Convert
         * @return list的json集合
         */
        @RequestMapping(value="/testConvert",method={RequestMethod.GET,RequestMethod.POST})
        @ResponseBody
        public static Object testConvert(@RequestParam(value = "date") Timestamp dt){
            List<Entity> list = new ArrayList<Entity>();
            Entity e = new Entity();
            e.setId("id1");
            e.setBirth(dt.getTime()+"");
            list.add(e);
            return list;
        }
    }

    测试

     spring mvc会自动实现前端传一个对象的json会自动封装到实体对象里。实体的字段也会用到上面的convert配置转换。

  • 相关阅读:
    240 Search a 2D Matrix II 搜索二维矩阵 II
    239 Sliding Window Maximum 滑动窗口最大值
    bzoj5029: 贴小广告&&bzoj5168: [HAOI2014]贴海报
    bzoj5178: [Jsoi2011]棒棒糖
    bzoj5293: [Bjoi2018]求和
    bzoj5194: [Usaco2018 Feb]Snow Boots
    bzoj2007: [Noi2010]海拔
    bzoj4956: [Wf2017]Secret Chamber at Mount Rushmore
    bzoj3296: [USACO2011 Open] Learning Languages
    bzoj4887: [Tjoi2017]可乐
  • 原文地址:https://www.cnblogs.com/aeolian/p/11971286.html
Copyright © 2020-2023  润新知