在thymeleaf中包含JavaScript变量

时间:2014-03-22 08:11:54

标签: java html spring web thymeleaf

如何在thymeleaf中包含一个JavaScript变量来检查病情?

尝试:

<div th:if="${myVariable == 5}">
 //some code
</div>

但它不起作用。

3 个答案:

答案 0 :(得分:33)

您尝试做的事情不会起作用,因为Thymeleaf在服务器端处理模板,因此它可以访问的变量是在其模型中定义的变量。

如果Thymeleaf正在运行的模型中有myVariable,那就可以了。 如果你想要的是在Thymeleaf模板中设置Javascript变量的值,你可以执行以下操作:

<script th:inline="javascript">
/*<![CDATA[*/
    ...

    var myVariable= /*[[${myVariable}]]*/ 'value';

    ...
/*]]>*/
</script>

在脚本中你可以拥有任何你想要的逻辑,包括隐藏/显示等。

查看文档的this部分,了解模式详情。

答案 1 :(得分:0)

对于百里香3,必须删除CDATA块以引用我的变量内联,否则解析器将其完全忽略。此语法对我在升级后成功起作用:

<script th:inline="javascript">
     var myVariable = [[${#vars.myVar}]];
     ...
</script>

注意:如果您还以[[$ {#ctx.variables.myVar}]]引用变量,则它在百里香3中将不再起作用,因为ctx不再具有名为变量的变量。

答案 2 :(得分:-1)

<script>
   // <![CDATA[
     ...Your script, here
   // ]]>
</script>