2016-06-29 3 views
1

어떻게하면 thymeleaf에서 HTML 엔티티를 해결할 수 있습니까?Thymeleaf가 HTML 엔티티를 해결하지 못합니다

나는 다음과 같습니다

<input th:name="title" th:value="Wayne&rsquo;s World" /> 

단순히 "Wayne&rsquo;s World" 대신 "Wayne's world"에 입력 요소를 생성합니다.

thymeleaf가 html 엔티티를 해결할 수있는 방법은 없나요?

답변

1

두 가지 선택 사항이 있습니다.

처음으로. html 엔티티를 전혀 사용하지 마십시오. \을 사용하여 특수 기호를 이스케이프하면됩니다.

<input th:name="title" th:value="'Wayne\'s World'" /> 

두 번째 : 당신은 작은 따옴표로 문자열 값을 지정해야한다는 유의하십시오. 사용 Thymeleaf의 string utility 탈출 XML을 enitites에 대한 :

<input th:name="title" th:value="${#strings.escapeXml('Wayne&rsquo;s World')}" /> 

당신의 문자열 값은 컨트롤러에서오고, __${}__ 전처리 표현을 사용하지 마십시오. 필요하지 않습니다. Thymeleaf의 표준 변수 표현 인 ${}을 사용하면됩니다. 이 표현식을 작은 따옴표로 묶지 마십시오. 다음 예에서 ${title} 변수 봐 :

<th:block th:include="row::row(attrs='value=${title}, minLength=\'.{1, 16}\', required=true, ... /> 

입니다 당신이 컨트롤러에 문자열 값을 추가 할 수 있습니다이 경우, 어떤 이스케이프없이 :

public String method(ModelMap model){ 
    ... 
    mode.addAttribute("title", "Wayne's world"); 
    ... 
} 
+0

불행하게도, HTML 개체에 대한 필요성이 경우 곳입니다 아래에 표시된 제목에 따옴표가 있습니다. {1, 16} \ ', 필수 = 참, 제목 ='__ : 블록 th : include = "행 :: 행 (attrs = '값 = \'__ $ {제목} __ \ ', 인용문 (예 :'Wayne '\ s World')을 이스케이프 처리하면 명백한 이유로 구문 분석 예외가 발생합니다. html 엔티티 (예 :'Wayne ’ s World')를 사용하려면 간단히 평가없이 인쇄하고'# strings.escapeXml'을 사용하여 이스케이프 처리하면 같은 이유로 동일한 구문 분석 예외가 발생합니다. – 000

+0

@ 000 확실하지 않습니다. 컨트롤러에서'$ {title} '을 (를) 얻는다는 뜻입니까? –

+0

예, '$ {title}'이 (가) – 000

관련 문제