2012-05-23 2 views
3

JSON 값을 템플릿으로 대체하기 위해 Atlassian의 제품에 내장 된 Velocity 엔진을 사용하고 com.atlassian.templaterenderer를 통해 공개했습니다. 템플릿에서 Velocity에서 리터럴 JSON 컨텐츠 포함 (HTML 이탈 방지)

이 보인다 같은 비트 다음

<script> 
    foo = [&quot;bar&quot;, &quot;baz&quot;] 
</script> 
: 나는 문자열 ["bar", "baz"]에 매핑 "foo는"함께 서식 파일을 렌더링 할 때

그러나
<script> 
    foo = $foo 
</script> 

는, 출력은 다음과 같다

어떻게 피할 수 있습니까?

답변

4

Atlassian에는 WithHtml으로 끝나지 않는 이름의 모든 변수에서 이스케이프 처리를 수행하는 이벤트 처리기가 있습니다. 따라서

: 원하는

<script> 
foo = $fooWithHtml 
</script> 

는 확장된다.

1

이것은 기본 동작이 아니며, EscapeHtmlReference 이벤트 핸들러가 velocity.properties 또는 java 초기화에 등록 된 것으로 보입니다. 이벤트 핸들러에 대한 자세한 내용은 here입니다.