SpringMVC的请求参数,类型转换器(日期格式),请求映射

SpringMVC的请求参数,类型转换器(日期格式),请求映射

请求参数

springMVC将传递的参数封装到处理的方法形参中,达到快速访问参数的目的

普通参数类型

参数名与处理器方法形参名保持一致

    //地址栏传递参数name
    //http://localhost:82/request/str?name=小付
    @RequestMapping("/str")
    public String test01(String name){
        System.out.println("地址栏传递的参数:"+name);
        return "/success";
    }

    //restful风格地址传递参数
    //http://localhost:82/request/str/小付
    @RequestMapping("/str/{id}")
    public String test02(@PathVariable("id") int id){
        System.out.println("restful风格地址栏传递的参数:"+id);
        return "/success";
    }

@RequestParam注解,设定参数

在这里插入图片描述

POJO类型参数

实体类中使用简单类型属性时候,参数名与实体类中属性名保持一致即可
在这里插入图片描述

   //传递pojo实体类型
    //http://localhost:82/request/user?name=小付&age=18
    @RequestMapping("/user")
    public String test03(User user){
        System.out.println("地址栏传递的数据封装为user:"+user);
        return "/success";
    }
pojo类型属性,与方法其他形参同名时

在这里插入图片描述

复杂POJO类型参数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

    //传递pojo实体类型,实体类中属性还为实体类
    //http://localhost:82/request/user?name=小付&age=18&address.city=重庆
    @RequestMapping("/user/pojo")
    public String test04(User user){
        System.out.println("地址栏传递的数据封装为user:"+user);
        return "/success";
    }

    //传递pojo实体类型,实体类属性为List<String> friends;
    //http://localhost:82/request/user/friends?name=小付&age=18&friends=小花&friends=小李
    @RequestMapping("/user/friends")
    public String test05(User user){
        System.out.println("地址栏传递的数据封装为user:"+user);
        //地址栏传递的数据封装为user:User(name=小付, age=18, address=null, friends=[小花, 小李])
        return "/success";
    }

数组类型的参数

在这里插入图片描述
在这里插入图片描述

类型转换器

SpringMVC对接收的数据进行自动类型转换,该工作通过Converter接口实现
在这里插入图片描述
在这里插入图片描述

日期类型格式转换
声明自定义的格式转换并覆盖系统的转换格式
    <!--5.启用自定义Converter-->
    <mvc:annotation-driven conversion-service="conversionService"/>
    <!--1.设定格式类型Converter,注册为Bean,受SpringMVC管理-->
    <bean id="conversionService"
          class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
        <!--2.自定义Converter格式类型设定,该设定使用的是同类型覆盖的思想-->
        <property name="formatters">
            <!--3.使用set保障相同类型的转换器仅保留一个,避免冲突-->
            <set>
                <!--4.设置具体的格式类型-->
                <bean class="org.springframework.format.datetime.DateFormatter">
                    <!--5.类型规则-->
                    <property name="pattern" value="yyyy-MM-dd"/>
                </bean>
            </set>
        </property>
    </bean>
日期格式类型转换注解方式

在这里插入图片描述

    //传递时间格式,在xml配置转换器,是spring定义的日期格式转换器
    //http://localhost:82/request/date/xml?date=2020-02-02
    @RequestMapping("/date/xml")
    public String test06(Date date){
        System.out.println("地址栏传递的数据封装为date:"+date);
        //地址栏传递的数据封装为date:Sun Feb 02 00:00:00 CST 2020
        return "/success";
    }

    //传递时间格式,注解的方式使用@DateTimeFormat的转换器,是spring定义的日期格式转换器
    //http://localhost:82/request/date?date=2020-02-02
    @RequestMapping("/date")
    public String test07(@DateTimeFormat(pattern = "yyyy-MM-dd") Date date){
        System.out.println("地址栏传递的数据封装为date:"+date);
        //地址栏传递的数据封装为date:Sun Feb 02 00:00:00 CST 2020
        return "/success";
    }

@RequestMapping注解,请求映射

在这里插入图片描述
在这里插入图片描述

@ReuqestMapping属性

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值