Spring MVC如何使用@RequestParam註解獲取參數
使用@RequestParam註解獲取參數
創建Hello控制器類
package com.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @Controller public class Hello { @RequestMapping("/show") public String show(@RequestParam("name")String userName) { System.out.println(userName); return "index"; } }
創建index.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>首頁</title> </head> <body> <h3>Spring MVC</h3> </body> </html>
啟動Tomcat並訪問
註意:如果參數被@RequestParam註解,那麼默認情況下該參數不能為空,如果為空則系統會拋出異常。如果希望允許為空,那麼要修改它的配置項required為 false。
package com.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @Controller public class Hello { @RequestMapping("/show") public String show(@RequestParam(value="name",required=false)String userName) { System.out.println(userName); return "index"; } }
啟動 Tomcat再次訪問
@RequestParam無法獲取參數
application/x-www-form-urlencoded是以表格的形式請求,而application/json則將數據序列化後才進行傳遞,如果使用瞭@RequestParam會在Content裡面查找對應的數據。
結果因為傳遞的數據已經被序列化所以不能找到,所以當要使用@RequestParam註解時候應當使用application/x-www-form-urlencoded,而如果想要使用application/json則應當使用@RequestBody獲取被序列化的參數
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- SpringMVC 參數綁定之視圖傳參到控制器的實現代碼
- 關於@RequestParam註解的使用(簡單易懂)
- 關於@RequestParam的使用所遇到的404問題
- Spring MVC文件配置以及參數傳遞示例詳解
- 一篇文章帶你瞭解SpringBoot Web開發