Spring

@ResponsBody

keepgoing 2023. 3. 18. 17:53

@ResponseBody는 ViewResolver를 요구하지 않고 원하는 데이터 반환을 json 형태로 본문에 응답해준다.

 

 @ResponseStatus(HttpStatus.BAD_REQUEST)
    @ExceptionHandler(MethodArgumentNotValidException.class)
    @ResponseBody
    public ErrorResponse inValidRequestHandler(MethodArgumentNotValidException e){

        ErrorResponse response =  ErrorResponse.builder()
                .code("400")
                .message("잘못된 요청입니다.")
                .build();

        for(FieldError fieldError : e.getFieldErrors()){
            response.addValidation(fieldError.getField(), fieldError.getDefaultMessage());
        }

        return response;
    }

위 코드에서 @ResponseBody를 제거하면 ViewResolver 에러 발생