2014-07-17 2 views
0

스프링 부트 (버전 1.1.1.RELEASE)를 사용하고 html 템플릿에 문자열 모델 속성을 추가하려고합니다.인코딩없이 html 템플릿에 모델 속성 추가하기

컨트롤러 :

@RequestMapping({"/", ""}) 
public String template(Model model) { 
    model.addAttribute("coolStuff", coolStuff); 
    return "panel/index"; 
} 

HTML 템플릿 :

<script type="text/javascript" th:inline="text"> 
/*<![CDATA[*/ 
    [[${coolStuff}]] 
/*]]>*/ 
</script> 

thymeleaf의 일 : "텍스트"모드에서 인라인 전에이 아주 잘 작동했지만 지금은 HTML 인코딩을 추가 (탈출 문자)를 제공합니다. th : 인라인 모드에서 "javascript"는 큰 따옴표를 이스케이프 처리하므로 작동하지 않습니다. html 템플릿의 인코딩없이 모델 속성의 문자열을 삽입 할 수있는 방법이 있습니까?

답변

0

th:utext을 사용하면 Thymeleaf의 이스케이프 기능을 비활성화 할 수 있지만 th:inline과 함께 사용하는 방법을 알지 못합니다. 나는 당신이 원하는 것을 달성 할 수 있다고 생각하지만 coolStuff의 값을 변경하여 <script> 블록의 전체를 포함해야합니다. 내가 번째 사용 했 결국

+0

: <스크립트 일 : utext = "# {coolStuff}"> ... 그러나 이것은 "MessageSource를"빈에 대한을 사용하므로 같은 utext는 coolStuff는 자바 스크립트 스크립트입니다 가치를 얻는다. 내가 시도한 것은 모델 속성을 통해 직접 값을 주입하는 것입니다. th : ​​인라인은 모델 속성을 읽지 만 다음과 같이 문자를 이스케이프 처리합니다. "< > 인라인처럼 정확하지만 아무 것도 이스케이프 처리하지 않는 사람은 uinline (unchecked-inline)과 같은 것을 알고 있다고 생각했습니다. – user1819111