2017-01-23 1 views
3

はエスケープされません Thymeleaf 3.0.xを使用したJavaScriptインライン出力ですか?エスケープされたインライン展開はうまく動作します。例:ThymeleafエスケープされていないJavaScriptインライン化

のpom.xml

<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-thymeleaf</artifactId> 
</dependency> 
<dependency> 
    <groupId>org.thymeleaf</groupId> 
    <artifactId>thymeleaf-spring3</artifactId> 
    <version>3.0.3.RELEASE</version> 
</dependency> 

servelet:

model.addAttribute("test", "testing..."); 

HTMLテンプレート:

<script th:inline="javascript"> 
/*<![CDATA[*/ 
    [[${test}]] 
    [(${test})] 
/*]]>*/ 
</script> 

生成された出力:

<script> 
/*<![CDATA[*/ 
    'testing...' 
    [(${test})] 
/*]]>*/ 
</script> 

したがって、エスケープされた式[[ ]]が機能しますが、エスケープされていない式[()]はエスケープしません。私は条件付きでjsを生成する必要があり、 "簡単な"回避策はありませんので、これは非常に役に立ちました。誰もこれを働かせることができましたか?どんな助けも大変ありがとう!

それは次の4つの依存関係を持つ春ブーツで動作するようになった私は最終的に、4つのすべてが(私は現在入手可能な最新バージョンを使用しています)が必要とされている
+0

申し訳ありませんが、私はこれを再現できません。私はThymeleaf 3.0.1,3.0.2,3.0.3(Spring BootなしではSpring 4の方言)を試してみましたが、うまくいきました。 – RoToRa

+0

@ RoToRaありがとう、私はそれが依存関係と関係があると思った。私はそれが働くようになった、私は答えを投稿します。 – ikcodez

答えて

1

<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-thymeleaf</artifactId> 
</dependency>  
<dependency> 
    <groupId>org.thymeleaf</groupId> 
    <artifactId>thymeleaf</artifactId> 
    <version>3.0.3.RELEASE</version> 
</dependency> 
<dependency> 
    <groupId>org.thymeleaf</groupId> 
    <artifactId>thymeleaf-spring4</artifactId> 
    <version>3.0.3.RELEASE</version> 
</dependency> 
<dependency> 
    <groupId>nz.net.ultraq.thymeleaf</groupId> 
    <artifactId>thymeleaf-layout-dialect</artifactId> 
    <version>2.1.2</version> 
</dependency> 

は、この情報がお役に立てば幸いです。

関連する問題