org.thymeleaf.exceptions.TemplateProcessingException:在此上下文中只允许返回数字或布尔值的变量表达式

Posted

技术标签:

【中文标题】org.thymeleaf.exceptions.TemplateProcessingException:在此上下文中只允许返回数字或布尔值的变量表达式【英文标题】:org.thymeleaf.exceptions.TemplateProcessingException: Only variable expressions returning numbers or booleans are allowed in this context 【发布时间】:2019-06-10 22:51:44 【问题描述】:

我一直使用thymeleafth:onclick属性调用javascript函数,参数如下

th:onclick="|myFunction('$parameter1')|"

但是thymeleaf 3.1.10 this has been removed。他们建议使用th:data 属性。

然而,我找到了以下解决方法,并且它们都运行良好。

    th:attr="onclick=|myFunction('$parameter1')|" th:onclick="@myFunction('$parameter1')">

现在我不确定这些变通办法是否是正确的做事方式,如果是,哪个更好。

【问题讨论】:

【参考方案1】:

第一个将按您的意愿工作 - 但是,您绕过了安全限制,现在您的页面容易受到 javascript 注入(这是进行此更改的最初原因)。

第二个简单的不起作用。它不会扩展变量$parameter1,而是将其编码为这样的 url:

onclick="myFunction?$%7Bparameter1%7D"

你真的应该按照页面上显示的那样做。

th:data-parameter1="$parameter1" onclick="myFunction(this.getAttribute('data-parameter1'));"

【讨论】:

以上是关于org.thymeleaf.exceptions.TemplateProcessingException:在此上下文中只允许返回数字或布尔值的变量表达式的主要内容,如果未能解决你的问题,请参考以下文章

org.thymeleaf.exceptions.templateinputexception怎么解决

org.thymeleaf.exceptions.TemplateProcessingException:在此上下文中只允许返回数字或布尔值的变量表达式

springboot报 org.thymeleaf.exceptions.TemplateInputException: Error resolving template "succeed&

springboot 整合 thymeleaf的问题

springboot使用thymeleaf模板问题

ThymeLeaf+LayUI表格渲染错误