Spring mvc 接受請求參數的方式

  • Summary:

handler method 參數綁定常用的註解,我們根據他們處理的Request的不同內容部分分爲四類:(主要講解常用類型)

A、處理requet uri 部分(這裏指uri template中variable,不含queryString部分)的註解:   @PathVariable;

B、處理request header部分的註解:   @RequestHeader, @CookieValue;

C、處理request body部分的註解:@RequestParam,  @RequestBody;

D、處理attribute類型是註解: @SessionAttributes, @ModelAttribute;


1. 使用 @PathVariabl 註解獲取路徑中傳遞參數
2. 使用 @ModelAttribute 註解獲取POST請求的FORM表單數據 
3. 直接用HttpServletRequest/HttpServletResponse獲取數據 
4. 使用 @RequestParam 獲取 HttpServletRequest 請求參數
5. 使用 @CookieValue 獲取 cookie 的值到 
6. 使用 @RequestHeader 獲取 HttpServletRequest 頭信息
7. 使用 @SessionAttributes 獲取 HttpSession 信息
 
  • Example:
1. 使用 @PathVariabl 註解獲取路徑中傳遞參數
JAVA  
 @RequestMapping(value = "/{id}/{str}")  
 public ModelAndView helloWorld(@PathVariable String id, @PathVariable String str) {  
 System.out.println(id);  
 System.out.println(str);  
 return new ModelAndView("/helloWorld");  
 
2. 使用 @ModelAttribute 註解獲取POST請求的FORM表單數據 
JSP  
<form method="post" action="hao.do">  
 a: <input id="a" type="text" name="a"/>  
 b: <input id="b" type="text" name="b"/>  
 <input type="submit" value="Submit" />  
</form>  
  
  
JAVA pojo  
 public class Pojo{  
 private String a;  
 private int b;  
}  
  
  
JAVA controller  
@RequestMapping(method = RequestMethod.POST)  
public String processSubmit(@ModelAttribute("pojo") Pojo pojo) {  
 return "helloWorld";  
 }  
 
3. 直接用HttpServletRequest/HttpServletResponse獲取數據 
JAVA  
@RequestMapping(method = RequestMethod.GET)  
public String get(HttpServletRequest request, HttpServletResponse response) {  
 System.out.println(request.getParameter("a"));  
 return "helloWorld";  
 
4. 使用 @RequestParam 獲取 HttpServletRequest 請求參數
JAVA  
@RequestMapping(value = "/requestParam", method = RequestMethod.GET)  
public String setupForm(@RequestParam("a") String a, ModelMap model) {  
 System.out.println(a);  
return "helloWorld";}
 
5. 使用 @CookieValue 獲取 cookie 的值到 
JAVA
@RequestMapping ( "cookieValue" )  
public String testCookieValue( @CookieValue ( "hello" ) String cookieValue, @CookieValue String hello) {  
   System. out .println(cookieValue + "-----------" + hello);  
   return "cookieValue" ;  
}  
 
6. 使用 @RequestHeader 獲取 HttpServletRequest 頭信息
@RequestMapping ( "testRequestHeader" )  
public String testRequestHeader( @RequestHeader ( "Host" ) String hostAddr, @RequestHeader String Host) {  
    System. out .println(hostAddr + "-----" + Host );  
    return "requestHeader" ;  
}  
 
7. 使用 @SessionAttributes 獲取 HttpSession 信息
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章