嵌入數據到Web應用程序中是一個常見需求,現在我們可以使用Controller接口將數據以JSON格式返回給頁面。下面是一個簡單的例子:
@RequestMapping(value = "/users", method = RequestMethod.GET) @ResponseBody public ListgetAllUsers() { List users = userRepository.findAll(); return users; }
這個Controller接口將所有用戶以JSON數組的方式返回給頁面。@RequestMapping注解確保了該接口可以通過/users這個路徑訪問。@ResponseBody注解告訴Spring將方法返回的對象轉換為JSON格式,然后返回到頁面。
在RestController類中,我們可以使用@RestController注解來代替@Controller和@ResponseBody注解:
@RestController @RequestMapping("/users") public class UserController { @Autowired private UserRepository userRepository; @GetMapping("") public ListgetAllUsers() { return userRepository.findAll(); } }
在這個例子中,我們使用@Autowired注解來注入UserRepository bean。@GetMapping注解替代了@RequestMapping注解,使用更簡單的方式指定HTTP請求方法和請求路徑。
返回JSON格式的數據也可以通過使用ResponseEntity類來實現:
@GetMapping("/{id}") public ResponseEntitygetUserById(@PathVariable(value = "id") Long userId) throws ResourceNotFoundException { User user = userRepository.findById(userId) .orElseThrow(() ->new ResourceNotFoundException("User not found for this id :: " + userId)); return ResponseEntity.ok().body(user); }
在這個例子中,我們使用了@GetMapping注解來指定HTTP請求方法和請求路徑。PathVariable注解指定了參數的值應該從請求路徑中獲取。如果找不到對應的用戶,我們將拋出一個自定義的異常。如果找到了用戶,我們使用ResponseEntity.ok()方法來返回狀態碼200 OK,并將User對象作為響應主體的JSON格式返回到頁面中。
上一篇cookie json
下一篇vue 異步加載js