>  기사  >  Java  >  Spring MVC에서 @ResponseBody를 사용하여 응답의 콘텐츠 유형을 어떻게 제어할 수 있나요?

Spring MVC에서 @ResponseBody를 사용하여 응답의 콘텐츠 유형을 어떻게 제어할 수 있나요?

Barbara Streisand
Barbara Streisand원래의
2024-10-28 05:13:30364검색

How can I control the content type of the response with @ResponseBody in Spring MVC?

@ResponseBody 속성: Spring MVC에서 응답 콘텐츠 유형 제어

Spring MVC에서 @ResponseBody 주석은 응답의 콘텐츠 유형을 결정하는 데 중요한 역할을 합니다. 클라이언트에게 다시 보냈습니다. 이 주석은 JSON 또는 일반 텍스트와 같은 사용자 지정 응답을 유연한 방식으로 반환할 때 유용합니다.

귀하의 경우 컨트롤러 메서드의 응답이 잘못된 값으로 설정되는 문제가 발생했습니다. 콘텐츠 인코딩. 이는 반환된 값에 적합한 변환기를 찾지 못하면 ISO-8859-1 인코딩으로 폴백하는 Spring MVC의 기본 동작 때문입니다.

이 문제를 해결하고 올바른 변환기를 설정하려면 콘텐츠 유형의 경우 @ResponseBody 주석의 생산 속성을 활용할 수 있습니다. 이 속성을 사용하면 컨트롤러 메소드가 생성할 수 있는 미디어 유형(예: 콘텐츠 유형)을 지정할 수 있습니다.

특정 사례의 경우 컨트롤러 메소드가 UTF-8 인코딩으로 일반 텍스트를 생성하기를 원합니다. 이를 달성하는 방법은 다음과 같습니다.

<code class="java">@RequestMapping(value = "ajax/gethelp")
@ResponseBody
public String handleGetHelp(Locale loc, String code) {
    log.debug("Getting help for code: " + code);
    String help = messageSource.getMessage(code, null, loc);
    log.debug("Help is: " + help);
    return help;
}</code>

@ResponseBody 주석에 presents = "text/plain; charset=utf-8"을 추가하면 Spring MVC에 다음과 같은 콘텐츠 유형을 명시적으로 설정하도록 지시하게 됩니다. utf-8 문자 세트를 사용하는 text/plain에 대한 응답입니다. 이렇게 하면 응답이 올바르게 인코딩되고 클라이언트 측에 적절하게 표시됩니다.

@RequestMapping 주석은 또한 해당 요청 매핑이 가능한 미디어 유형을 제어하는 ​​데 사용할 수 있는 생산 속성을 지원합니다. 핸들.

위 내용은 Spring MVC에서 @ResponseBody를 사용하여 응답의 콘텐츠 유형을 어떻게 제어할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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