Controller是MVC模式的一個組成部分,用于控制用戶請求和響應結果,通常接收請求、處理數據、調用服務和返回結果。在現代化互聯網系統中,前后端分離的技術發展迅速,Controller常常需要接收和響應JSON格式的數據,而不再是傳統的JSP頁面。
Controller傳遞JSON數據的過程如下:
@RestController @RequestMapping("/api") public class UserController { @Autowired private UserService userService; @GetMapping("/user/{id}") public User getUserById(@PathVariable("id") Long id) { return userService.getUserById(id); } @PostMapping("/user") public User saveUser(@RequestBody User user) { return userService.saveUser(user); } }
在上面的代碼中,@RestController注解表示該Controller返回JSON響應格式,而不是傳統的html格式。@GetMapping和@PostMapping注解分別表示接收GET和POST請求,并通過@RequestMapping注解對請求路徑進行映射。
通過@PathVariable注解將URL中的{id}參數映射到getUserById方法的id參數中,然后再通過userService.getUserById(id)方法獲取相應的用戶信息。同樣地,@RequestBody注解將POST請求的JSON數據映射到User對象上,并調用userService.saveUser(user)方法保存用戶信息。
最后,Controller將響應結果轉為JSON格式,并通過HTTP協議發送給客戶端。客戶端可以用各種方式解析響應結果,例如Vue.js可以使用axios庫獲取響應結果,再通過v-for指令和v-bind屬性渲染數據到頁面中。
axios.get('/api/user/1') .then(function (response) { app.user = response.data; }) .catch(function (error) { console.log(error); });
綜上所述,Controller傳遞JSON數據是現代互聯網系統中常見的技術之一,它可以實現前后端分離并提高系統的可維護性和擴展性。