SpringMVC学习之获得请求参数

1.获得基本类型参数

Controller中的业务方法的参数名要与请求参数的name一致,参数值会自动映射匹配

	@RequestMapping("/get")
    @ResponseBody // 表示不进行页面跳转
    public void getParams(String username, int age){
        System.out.println(username);
        System.out.println(age);
    }

2.获得POJO类型参数

Controller中的业务方法的POJO参数的属性名要与请求参数的name一致,参数值会自动映射匹配
(举个栗子:User类有两个属性username和age,那么请求参数的参数名也必须是username和age)

public class User {
    private String username;
    private int age;
    Getter/Setter......
}
   @RequestMapping("/get2")
   @ResponseBody // 表示不进行页面跳转
   public void getParams2(User user){
       System.out.println(user);
   }

3.获得数组类型的参数

Controller中的业务方法的数组名要与请求参数的name一致,参数值会自动映射匹配:
在浏览器中输入:http://localhost:8080/Spring_05_mvc_war/user/get3?strs=Alice&strs=Bob&strs=David

   @RequestMapping("/get3")
   @ResponseBody // 表示不进行页面跳转
   public void getParams3(String[] strs){
       System.out.println(Arrays.toString(strs));
   }

4.获得集合类型的参数

方法一:将集合参数包装到一个VO对象中才可以:
	public class VO {
	    private List<User> userList;
	    Getter/Setter...
	}

  @RequestMapping("/get4")
  @ResponseBody // 表示不进行页面跳转
  public void getParams4(VO vo){
      System.out.println(vo);
  }

但是,在提交请求的地方一定要清晰地指明对象的具体名称才行:

  <form action="${pageContext.request.contextPath}/user/get4" method="get">
      <%--表明时第几个User对象的username或age--%>
      <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>
方法二:使用Ajax提交,直接接收集合数据

使用Ajax提交时,可以指定contentType为json形式,在方法参数位置加上@RequestBody可以直接接受集合数据,
而无需再用POJO或VO对其进行包装了

   @RequestMapping("/get5")
   @ResponseBody
   public void getParams5(@RequestBody(required = false) List<User> userList){
       System.out.println(userList);
   }

但是这里还涉及到前端的东西,要用ajax和jQuery相关的东西,在此就不做赘述了。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值