SpringMVC下5中参数类型传递

这篇博客详细介绍了SpringMVC中处理不同类型的请求参数,包括普通参数(名称可定制)、Pojo参数(直接映射对象属性)以及数组和集合参数的接收方式。通过@RequestParam注解可以实现别名映射,而对于引用类型,SpringMVC会自动创建对象并填充属性。此外,还展示了如何处理数组和集合参数,如数组传递与集合(List)参数的使用。
摘要由CSDN通过智能技术生成

1、普通参数

 //普通参数:请求参数名与形参名不同
    @RequestMapping("/commonParamDifferentName")
    @ResponseBody
    public String commonParamDifferentName(@RequestParam("name") String username, int age){
        System.out.println("普通参数传递:username:"+username+",age:"+age);
        return "{'module':'common param differenet name'}";
    }

@RequestParam 相当于给对应的形参起了一个别名,用来接受url中 name对应的值:

xxxx?name=xx&age=xx或是xxxx?username=xx&age=xx 都是一样的效果

2、对引用类型

 @RequestMapping("/pojoParam")
    @ResponseBody
    public String  PojoParam(User user){
        System.out.println("pojo类型参数传递:user:"+user);
        return "{'module':'pojo param'}";
    }

    //嵌套pojo参数(一个pojo对象中包含其他的pojo对象,User中包含address)
    @RequestMapping("/pojoContainParam")
    @ResponseBody
    public String pojoContainParam(User user){
        System.out.println("pojo嵌套类型参数传递:user"+user);
        return "{'module':'pojoContainParam'}";
    }

在SpringMVC下,获取pojo参数只需要把对应的值发送请求即可。

会自动创建一个对象来接受url中的数据,比如:

user中的属性                                        address中的属性

 当url中为:xx?name=xx&age=&xx&address.province=xx&address&city=xx这样的请求信息提交后,会自动创建一个user对象来接收这些数据装配成一个user对象。

3、数组和集合

    //数组
    @RequestMapping("/arrayParam")
    @ResponseBody
    public String arrayParam(String[] likes){
        System.out.println("数组传递参数:likes"+ Arrays.toString(likes));
        return "{'module':'array param'}";
    }

    //集合参数
    @RequestMapping("/listParam")
    @ResponseBody
    public String listParam(@RequestParam List<String> likes){
        System.out.println("集合参数传递:"+likes);
        return "{'module':'listParam'}";
    }

在集合参数传递时,第一次不加@RequestParam注解产生的错误:

 意思是List 没有构造方法。

对@RequestParam的认识:当有这个注解的时候,不会创建一个对象来接受url中的数据,即将数据作为参数放入集合即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值