如何让Thymeleaf在HTML注释中处理URL表达式

时间:2014-10-10 12:18:06

标签: html spring thymeleaf

我已经开始使用Thymeleaf并遇到了以下问题。 在我的HTML模板中,我有这段代码:

  <!-- Thymeleaf -->
  <script src="../js/vendor/modernizr.js" th:src="@{js/vendor/modernizr.js}"></script>
  <!--[if lt IE 9]>
        <script src="../js/vendor/jquery-1.11.min.js" th:src="@{js/vendor/jquery-1.11.min.js}"></script>
        <script src="../js/helpers/polyfills.js" th:src="@{js/helpers/polyfills.js}"></script>
    <![endif]-->

当我在浏览器中打开它时,Thymeleaf正在为第一行正确替换URL,而对于[if lt IE 9]中的部分,则不处理任何内容。请比较:

<!-- Thymeleaf -->
  <script src="js/vendor/modernizr.js"></script>
  <!--[if lt IE 9]>
        <script src="../js/vendor/jquery-1.11.min.js" th:src="@{js/vendor/jquery-1.11.min.js}"></script>
        <script src="../js/helpers/polyfills.js" th:src="@{js/helpers/polyfills.js}"></script>
    <![endif]-->

如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

您必须使用Conditional Comments Extras Dialect

您只需将org.thymeleaf.extras.conditionalcomments.dialect.ConditionalCommentsDialect添加到模板引擎中即可开箱即用!

答案 1 :(得分:0)

在pom.xml中添加以下行

    <dependency>
        <groupId>org.attoparser</groupId>
        <artifactId>attoparser</artifactId>
        <version>1.4.0.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.thymeleaf.extras</groupId>
        <artifactId>thymeleaf-extras-conditionalcomments</artifactId>
        <version>2.1.1.RELEASE</version>
    </dependency>

然后在您的一个配置代码中添加以下行

@Bean
public ConditionalCommentsDialect conditionalCommentDialect() {
    return new ConditionalCommentsDialect();
}

这对我有用。