SpringMVC請求參數綁定回顧

請求參數綁定:說⽩了SpringMVC如何接收請求參數

http協議(超⽂本傳輸協議)

原⽣servlet接收⼀個整型參數:

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

2) 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;

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章