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を生成する必要があり、 "簡単な"回避策はありませんので、これは非常に役に立ちました。誰もこれを働かせることができましたか?どんな助けも大変ありがとう!
申し訳ありませんが、私はこれを再現できません。私はThymeleaf 3.0.1,3.0.2,3.0.3(Spring BootなしではSpring 4の方言)を試してみましたが、うまくいきました。 – RoToRa
@ RoToRaありがとう、私はそれが依存関係と関係があると思った。私はそれが働くようになった、私は答えを投稿します。 – ikcodez