>Java >java지도 시간 >Spring MVC @ResponseBody 메소드에서 HTTP 400 \'잘못된 요청\' 오류를 반환하는 방법은 무엇입니까?

Spring MVC @ResponseBody 메소드에서 HTTP 400 \'잘못된 요청\' 오류를 반환하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-06 02:02:02210검색

How to Return an HTTP 400

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로 변경합니다. 여기서 T는 예상되는 응답 유형입니다. 이를 통해 HttpStatus 열거형을 활용하여 HTTP 상태 코드를 지정할 수 있습니다.

<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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.