SpringMVC请求参数绑定回顾

请求参数绑定:说⽩了SpringMVC如何接收请求参数

http协议(超⽂本传输协议)

原⽣servlet接收⼀个整型参数:

1) String ageStr = request.getParameter("age");

  1. Integer age = Integer.parseInt(ageStr);

SpringMVC框架对Servlet的封装,简化了servlet的很多操作

SpringMVC在接收整型参数的时候,直接在Handler⽅法中声明形参即可

@RequestMapping("xxx")

public String handle(Integer age) {

System.out.println(age);

}

参数绑定:取出参数值绑定到handler⽅法的形参上

默认⽀持 Servlet API 作为⽅法参数

当需要使⽤HttpServletRequest、 HttpServletResponse、 HttpSession等原⽣servlet对象时,直接在handler⽅法中形参声明使⽤即可。

/
**

*

* SpringMVC 对原⽣servlet api的⽀持 url: /demo/handle02?id=1

*

* 如果要在SpringMVC中使⽤servlet原⽣对象,⽐如

HttpServletRequest\HttpServletResponse\HttpSession,直接在Handler⽅法形参中声

明使⽤即可

*

*/

@RequestMapping("/handle02")

public ModelAndView handle02(HttpServletRequest request,

HttpServletResponse response,HttpSession session) {

String id = request.getParameter("id");

Date date = new Date();

ModelAndView modelAndView = new ModelAndView();

modelAndView.addObject("date",date);

modelAndView.setViewName("success");

return modelAndView;

}

绑定简单类型参数

简单数据类型:⼋种基本数据类型及其包装类型

参数类型推荐使⽤包装数据类型,因为基础数据类型不可以为null

整型: Integer、 int

字符串: String

单精度: Float、 float

双精度: Double、 double

布尔型: Boolean、 boolean

说明:对于布尔类型的参数, 请求的参数值为true或false。或者1或0

注意:绑定简单数据类型参数,只需要直接声明形参即可(形参参数名和传递的参数名要保持⼀致,建议 使⽤包装类型,当形参参数名和传递参数名不⼀致时可以使⽤@RequestParam注解进⾏⼿动映射)

简单数据类型:


/*

* SpringMVC 接收简单数据类型参数 url: /demo/handle03?id=1

*

* 注意:接收简单数据类型参数,直接在handler⽅法的形参中声明即可,框架会取出参数值

然后绑定到对应参数上

* 要求:传递的参数名和声明的形参名称保持⼀致

*/

@RequestMapping("/handle03")

public ModelAndView handle03(@RequestParam("ids") Integer id,Boolean

flag) {

Date date = new Date();

ModelAndView modelAndView = new ModelAndView();

modelAndView.addObject("date",date);

modelAndView.setViewName("success");

return modelAndView;

}

绑定Pojo类型参数

/*

* SpringMVC接收pojo类型参数 url: /demo/handle04?id=1&username=zhangsan

*

* 接收pojo类型参数,直接形参声明即可,类型就是Pojo的类型,形参名⽆所谓

* 但是要求传递的参数名必须和Pojo的属性名保持⼀致

*/

@RequestMapping("/handle04")

public ModelAndView handle04(User user) {

Date date = new Date();

绑定Pojo包装对象参数

包装类型 QueryVo

ModelAndView modelAndView = new ModelAndView();

modelAndView.addObject("date",date);

modelAndView.setViewName("success");

return modelAndView;

}

绑定Pojo包装对象参数

包装类型 QueryVo


package com.lagou.edu.pojo;

/**

* @author 应癫

*/

public class QueryVo {

private String mail;

private String phone;

// 嵌套了另外的Pojo对象

private User user;

public String getMail() {

return mail;

}

public void setMail(String mail) {

this.mail = mail;

}

public String getPhone() {

return phone;

}

public void setPhone(String phone) {

this.phone = phone;

}

public User getUser() {

return user;

}

public void setUser(User user) {

this.user = user;

}

}

/*

* SpringMVC接收pojo包装类型参数 url: /demo/handle05?

user.id=1&user.username=zhangsan

* 不管包装Pojo与否,它⾸先是⼀个pojo,那么就可以按照上述pojo的要求来

* 1、绑定时候直接形参声明即可

* 2、传参参数名和pojo属性保持⼀致,如果不能够定位数据项,那么通过属性名 + "." 的

⽅式进⼀步锁定数据

*

*/

@RequestMapping("/handle05")

public ModelAndView handle05(QueryVo queryVo) {

Date date = new Date();

ModelAndView modelAndView = new ModelAndView();

modelAndView.addObject("date",date);

modelAndView.setViewName("success");

return modelAndView;

}

猜你喜欢

转载自www.cnblogs.com/liuyj-top/p/13167460.html