Spring MVC @ResponseBody 메소드에서 HTTP 오류를 처리하는 방법
문제:
언제 @ResponseBody 접근 방식과 함께 Spring MVC를 사용하는 경우 특정 조건이 충족되지 않는 경우 메서드가 어떻게 HTTP 400 "잘못된 요청" 오류로 응답할 수 있나요?
해결책:
원래 접근 방식:
원래 코드는 조건이 충족되지 않으면 문자열을 반환하려고 시도했지만 @ResponseBody는 ResponseEntity 객체를 기대하므로 이는 실현 가능하지 않습니다.
<code class="java">@ResponseBody public String match(@PathVariable String matchId) { String json = matchService.getMatchJson(matchId); if (json == null) { // TODO: how to respond with e.g. 400 "bad request"? } return json; }</code>
해결책:
메서드의 반환 유형을 ResponseEntity
<code class="java">@ResponseBody public ResponseEntity<String> match(@PathVariable String matchId) { String json = matchService.getMatchJson(matchId); if (json == null) { return new ResponseEntity<>(HttpStatus.BAD_REQUEST); } return new ResponseEntity<>(json, HttpStatus.OK); }</code>
Spring 4.1 이후의 더 깔끔한 대안을 위해 ResponseEntity의 도우미 메서드를 활용하세요.
<code class="java">@ResponseBody public ResponseEntity<String> match(@PathVariable String matchId) { String json = matchService.getMatchJson(matchId); if (json == null) { return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(null); } return ResponseEntity.ok(json); }</code>
이 접근 방식 실행 결과에 따라 적절한 HTTP 상태 코드 및 콘텐츠를 반환할 수 있습니다.
위 내용은 Spring MVC @ResponseBody 메소드에서 HTTP 400 \"잘못된 요청\" 오류를 반환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!