복붙노트

[SPRING] Spring MVC를 사용할 때 Freemarker 뷰에서 content-type을 설정하는 방법은 무엇입니까?

SPRING

Spring MVC를 사용할 때 Freemarker 뷰에서 content-type을 설정하는 방법은 무엇입니까?

freemarker 뷰와 함께 Sping MVC를 사용하고 있습니다. 내가보기를 해결하기 위해 FreeMarkerViewResolver를 설정하고 지금까지 작동하지만 지금은 인코딩 문제가 있습니다. 내 모든 의견은 UTF-8 인코딩의 HTML 5 페이지이며 HTML 페이지에도 을 추가했지만 문자는 여전히 잘못된 인코딩으로 인쇄됩니다. 나는 컬 (curl)로 HTTP 헤더를 검사하고 이것을 발견했다 :

k@jules:~$ curl -I http://localhost:8080/testweb/test.view
HTTP/1.1 200 OK
Content-Type: */*;charset=ISO-8859-1

그러나 일부 비 존재 리소스 (Tomcat 오류를 생성하는)를 요청하면 다음과 같이됩니다.

k@jules:~$ curl -I http://localhost:8080/testweb/nothere.html
HTTP/1.1 200 OK
Content-Type: text/html;charset=utf-8

그래서 Tomcat 자체가 올바른 content-type을 반환하지만 Spring MVC Freemarker 뷰는 그렇지 않습니다.

JSP의 경우 JSP 헤더에서 Content-Type을 설정할 수 있지만 freemarker 템플릿은 어디에서 설정할 수 있습니까? 나는 Spring Bean 환경 설정에서 어딘가에이 작업을 수행해야만하지만 올바른 위치를 찾을 수 없다고 생각한다.

해결법

  1. ==============================

    1.view resolver (dispatcher-servlet.xml에 있어야 함)에는 다음을위한 contentType 속성이 있습니다.

    view resolver (dispatcher-servlet.xml에 있어야 함)에는 다음을위한 contentType 속성이 있습니다.

    <bean id="viewResolver"
       class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
        <property name="prefix" value=""/>
        <property name="suffix" value=".ftl"/>
        <property name="contentType" value="text/html;charset=UTF-8"/>
    </bean>
    
  2. ==============================

    2.스프링 프레임 워크와 freemarker 템플릿을 사용할 때도 UTF-8 문자 (æ, ø 등 특수 문자)를 표시하는 데 문제가 발생했습니다.

    스프링 프레임 워크와 freemarker 템플릿을 사용할 때도 UTF-8 문자 (æ, ø 등 특수 문자)를 표시하는 데 문제가 발생했습니다.

    내가 한 일이.

    1. .ftl 페이지가 utf-8로 인코딩되었는지 확인하십시오 UTF-8 문자셋으로 인코딩되지 않은 페이지가 다른 모든 요구 사항을 설정하더라도 잘못된 번호를 표시 할 수 있다는 것을 보장하는 것이 중요합니다. IDE 설정을 검사하여 파일을 설정할 기본 인코딩을 찾으십시오. 그러나 오늘 Eclipse와 NetBeans 모두 UTF-8 인코딩을 표준으로 모든 파일을 설정한다고 생각합니다. BOM이없는 UTF-8 인코딩인지 확인해야합니다.

    2. 템플릿 파일에 메타 태그를 포함시켜 문자 집합을 설정합니다 태그를 포함하는 템플리트 (.ftl) 파일에서 charset = "UTF-8"속성을 사용하여 를 설정하십시오. HTML 5를 사용하는 경우입니다. xhtml 또는 HTML 4를 사용하는 경우 메타 태그는 다음과 같이 표시되어야합니다.

    3. 배포 설명자 파일에 문자 인코딩 필터를 설정해야합니다. 문자 인코딩 필터를 통해 모든 수신 / 발신 요청을 필터링해야합니다. 이 필터는 배포 설명자 (web.xml / 또는 Java에 해당하는 WebApplicationInitializer)에서 설정됩니다.

    WebApplicationInitializer (Java 파일)

  3. from https://stackoverflow.com/questions/7302047/how-to-set-content-type-in-freemarker-views-when-using-spring-mvc by cc-by-sa and MIT license