Thymeleaf未转义JavaScript内联

时间:2017-01-23 23:36:46

标签: javascript thymeleaf

如何使用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,并且没有“简单”的解决方法,所以这将非常有用。有没有人能够让这个工作?任何帮助非常感谢!

1 个答案:

答案 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>

希望这有帮助。