spring mvc-获取请求参数

本文详细介绍了Spring MVC中各种参数的传递方式,包括基本类型、POJO类型、数组、集合及JSON数据等,并通过实例展示了如何正确配置和使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1. 基本类型参数

方式一:

方式二:

2. pojo类型参数

1. 简单类型:

2.pojo对象属性

3.pojo出现list

4.pojo中出现map

3. 数组类型参数

4. 集合类型参数

5. json传递数据


1. 基本类型参数

方式一:

代码:
@RequestMapping("/save2")
@ResponseBody
public void save2(String name,Integer age){
    System.out.println("姓名:"+name+",年龄:"+age);
}
浏览器输入:
http://localhost/save2?name=zhaung&age=12

 注意:参数名和处理器方法形参名保持一致

方式二:

 

    @RequestMapping("/save3")
    @ResponseBody
    public void save3(@RequestParam(name="username",
                                    required = true,
                                    defaultValue = "itheima") String name){
        System.out.println("姓名:"+name);
    }

//解析:
//value:参数名
//required:是否包含该参数,默认为true,表示该请求路径中必须包含该参数,如果不包含就报错。
//defaultValue:默认参数值,如果设置了该值,required=true将失效,自动为false,如果没有传该参数,就使用默认值
//浏览器中输入地址

http://localhost/save3   //结果:zhangsan

http://localhost/sava3?username="lisi"  //结果:list

 

2. pojo类型参数

1. 简单类型:

public class User {
    private String username;
    private int age;

    //get方法 略
    //set方法 略

}
    @RequestMapping("/save4")
    @ResponseBody
    public void save4(User user){
        System.out.println("姓名:"+user.getUsername()+",年龄:"+user.getAge());
    }
浏览器中输入
http://localhost/save4?username=zhaung&age=12

注意:参数名称要和pojo 属性名要保持一致,会自动的封装的到这个实体类中。

2.pojo对象属性

public class User {
    private String username;
    private int age;
    private Address address;

    //getxxx(),setxxx()方法略
}
  @RequestMapping("/save4")
  @ResponseBody
  public void save4(User user){
    System.out.println(user.getAddress().getName());
  }
浏览器
http://localhost/save4?address.name=beijing

3.pojo出现list

public class User {
    private String username;
    private int age;
    private List<Address> address;

    setxxx(),getxxx()方法
}
    @RequestMapping("/save4")
    @ResponseBody
    public void save4(User user){
        System.out.println(user.getAddress());
    }
浏览器
http://localhost/save4?address[0].name=zhangsan&address[1].name=beijing

结果:[Address{name='zhangsan', city='null', address='null'},
       Address{name='beijing', city='null', address='null'}]

4.pojo中出现map

public class User {
    private String username;
    private int age;
    private Map<String,Address> addressMap;

    getxxx(),setxxx() 省略

}

 


    @RequestMapping("/save4")
    @ResponseBody
    public void save4(User user){
        System.out.println(user.getAddress());
    }
浏览器输入地址:
http://localhost/save4?addressMap[%27num1%27].name=beijing&address[%27num2%27].name=nanjing

 

3. 数组类型参数

    @RequestMapping("/save5")
    @ResponseBody
    public void save4(String arg[]){
        System.out.println(Arrays.asList(arg));
    }
浏览器中输入地址
http://localhost/save5?arg=111&arg=222&arg=333

 

4. 集合类型参数

  普通的list

    @RequestMapping("/save6")
    @ResponseBody
    public void save6(@RequestParam("nick") List<String> nick){
        System.out.println(nick);
    }
浏览中
http://localhost/save6?nick=111&nick=222&nick=333

结果:
[111, 222, 333]

封装的对象的list

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <form action="${pageContext.request.contextPath}/save8" method="post">
        <input type="text" name="userList[0].username"><br>
        <input type="text" name="userList[0].age"><br>
        <input type="text" name="userList[1].username"><br>
        <input type="text" name="userList[1].age"><br>
        <input type="submit" value="提交">
    </form>
</body>
</html>
public class Vo {

    private List<User> userList;

    public Vo() {
    }
    
    getxxx(),setxxx()省略
}
@RequestMapping("/save8")
@ResponseBody
public void save8(Vo vo){
        System.out.println(vo);
    }
}

5. json传递数据

//前端
<script src="${pageContext.request.contextPath}/js/jquery-3.3.1.min.js"></script>
<script>
    var userList=new Array();
    userList.push({username:"zhangdan",age:18});
    userList.push({username:"zww",age:12});
    $.ajax({
        type:"post",
        url:"${pageContext.request.contextPath}/save9",
        data: JSON.stringify(userList),
        contentType:"application/json;charset=utf-8"
    })
</script>
//java 代码  
  @RequestMapping("/save9")
    @ResponseBody
    public void save9(@RequestBody List<User> userList){
        System.out.println(userList);
    }
//结果:

[User{
    username='zhangdan', 
    age=18, 
    addressMap=null
}, 
User{
    username='zww', 
    age=12, 
    addressMap=null
}]

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值