Spring中的@Responsebody和@RequestParam
阿新 • • 發佈:2018-12-22
一、前臺向後臺傳引數的方式
前臺傳引數的三種方式: 路徑傳引數、get傳引數、body傳引數(post)
1. 路徑傳引數,用@PathVariable
@RequestMapping(value = "user/login/{id}/{name}/{status}") @ResponseBody public User login(@PathVariable int id, @PathVariable String name, @PathVariable boolean status) { //返回一個User物件響應ajax的請求 return new User(id, name, status); }
2.get傳引數,其實引數也是放在訪問的url中的
@RequestMapping(value = "/home")
Public ModelAndView getMv(@RequestParam("id") String param){
}
3. 使用請求體body傳引數,用@RequestBody
@RequestMapping(value = "user/login") @ResponseBody // 將ajax(datas)發出的請求寫入 User 物件中 public User login(@RequestBody User user) { // 這樣就不會再被解析為跳轉路徑,而是直接將user物件寫入 HTTP 響應正文中 return user; }
二、@RequestBody 和@RequestParam的區別
@RequestBody主要用來接收前端傳遞給後端的json字串中的資料的(請求體中的資料的),也就是@RequestBody只能處理post請求,不能處理get請求,因為get引數不是放在請求體中,而是放在請求頭中。
在後端的同一個接收方法裡,@RequestBody與@RequestParam()可以同時使用,@RequestBody最多隻能有一個,而RequestParam()可以有多個。
一般用@RequestParam()來解析訪問路徑中的引數,但是@RequestParam()能不能解析請求體中的資料呢,能不能處理post請求?答案是可以的。參見 使用@RequestParam處理post請求。
只需要前臺通過表單提交鍵值對資料,後臺通過以下兩種方式獲得:
在SpringMVC後臺控制層獲取引數的方式主要有兩種,一種是request.getParameter("name"),另外一種是用註解@RequestParam直接獲取。
後續補充前臺ajax傳參