目錄
- 9、springmvc處理ajax請求
- 9.1@RquestBody請求
- 9.2@ResponseBody
- 9.3@RestController註解
9、springmvc處理ajax請求
9.1@RquestBody請求
@RquestBody可以獲取請求體資訊,使用@RquestBody註解標識控制器方法的形參,當前的請求的請求體就會為當前註解所標識的形參賦值
使用@RquestBody註解將json格式的請求引數轉換為java物件
⑴匯入jackson依賴
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.1</version>
</dependency>
⑵在springmvc配置檔案中設定
<mvc:annotation-driven></mvc:annotation-driven>
使用@RquestBody註解將json格式的請求引數轉換為map集合
@RequestMapping("/test/requestBody/json")
public void testRequestBodyAjax(@RequestBody Map<String, Object> user) {
System.out.println(user);
}
9.2@ResponseBody
**@ResponseBody用於標識一個控制器方法,可以將該方法的返回值直接作為響應報文的響應體響應到瀏覽器響應瀏覽器json資料 **
9.3@RestController註解
這是一個複合註解,標識在控制器的類上,就相當於給類新增了@Controller註解,並且為該類中的每個方法都新增了@ResponseBody註解
@Controller
public class TestAjaxController {
@RequestMapping("/test/responseBody")
@ResponseBody
public String testResponseBody() {
// 未加@ResponseBody註解,預設返回的是檢視名稱,即thymeleaf模板
return new User(1, "張三", "123456", 18, "男").toString();
}
}
@RestController
public class TestAjaxController {
@RequestMapping("/test/responseBody")
public String testResponseBody() {
// 未加@ResponseBody註解,預設返回的是檢視名稱,即thymeleaf模板
return new User(1, "張三", "123456", 18, "男").toString();
}
}
上面這兩種寫法等效,如果每個方法都要使用ResponseBody的時候,建議直接加上RestController