spring-boot - org.thymeleaf.exceptions.TemplateProcessingException:在此上下文中只允许返回数字或布尔值的变量表达式
问题描述
我一直在使用thymeleaf
th:onclick
属性来调用javascript
函数,参数如下
th:onclick="|myFunction('${parameter1}')|"
但与thymeleaf 3.1.10
此已被删除。他们建议使用th:data
属性。
但是,我找到了以下解决方法,并且它们都运行良好。
th:attr="onclick=|myFunction('${parameter1}')|"
th:onclick="@{myFunction('${parameter1}')}">
现在我不确定这些变通办法是否是正确的做事方式,如果是,哪一种是更好的方式。
解决方案
第一个将按照您的意愿工作 - 但是,您绕过了安全限制,现在您的页面容易受到 javascript 注入的影响(这是进行此更改的最初原因)。
第二个只是简单地不起作用。它不会扩展变量${parameter1}
,而是将其编码为这样的 url:
onclick="myFunction?$%7Bparameter1%7D"
您真的应该按照页面上所示的方式进行操作。
th:data-parameter1="${parameter1}" onclick="myFunction(this.getAttribute('data-parameter1'));"
推荐阅读
- java - Populate Jtable with vector
- java - Android TV 模拟器无法识别媒体键事件
- php - Login Page is refreshing regardless of if the correct login information is entered
- mysql - Docker MySQL 8 如何设置 --secure-file-priv
- oracle - ODI 11g Interface SQL Data to Multiple Flat Files
- python - 如何在数据帧匹配中获取第一个索引
- postgresql - Postgres 用于截断外键标识符的具体算法是什么?
- sed - 使用 sed/awk linux bash 替换字符串
- java - 泛型 - 不能用 T 扩展 Base 为 T 返回 Base
- docker - Ubuntu 14.04 几分钟后破坏了 docker 网络