如何使用Thymeleaf 3.0.x获得未转义 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>
小服务程序:
model.addAttribute("test", "testing...");
html模板:
<script th:inline="javascript">
/*<![CDATA[*/
[[${test}]]
[(${test})]
/*]]>*/
</script>
生成输出:
<script>
/*<![CDATA[*/
'testing...'
[(${test})]
/*]]>*/
</script>
因此,转义表达式[[ ]]
有效,但未转义表达式[( )]
则不然。我需要有条件地生成js,并且没有“简单”的解决方法,所以这将非常有用。有没有人能够让这个工作?任何帮助非常感谢!
答案 0 :(得分:1)
我终于让它与Spring Boot一起使用,具有以下四个依赖项,所有四个都是必需的(我使用当前可用的最新版本):
<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>
希望这有帮助。