Caused by: org.attoparser.ParseException:

复制代码
报错:
   Caused by: org.attoparser.ParseException: Only variable expressions returning numbers or booleans are allowed in this context, any other datatypes are not trusted in the context of this expression, including Strings or any other object that could be rendered as a text literal. A typical case is HTML attributes for event handlers (e.g. "onload"), in which textual data from variables should better be output to "data-*" attributes and then read from the event handler. (template: "fourteenth/cfgshareimage/list" - line 241, col 65)
    at org.attoparser.MarkupParser.parseDocument(MarkupParser.java:393)
    at org.attoparser.MarkupParser.parse(MarkupParser.java:257)
    at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parse(AbstractMarkupTemplateParser.java:230)
    ... 83 common frames omitted



修改前代码
复制代码
th:οnclick="getCopyUrl('shareImageUrl1${language.getKey}'“
复制代码
修改后的代码:


<button type="button" class="layui-btn" style="margin-top:30px;"
        th:id="'ID-upload-copy'+${language.getKey}" th:data-url="shareImageUrl1+${language.getKey}" th:οnclick="getCopyUrl(this.dataset.url)">

解释:

1. 通过 data-* 属性传递数据

Thymeleaf 认为在 onclick 等事件处理器中直接插入字符串可能会存在 XSS(跨站脚本攻击)风险,因此不允许将非数值或布尔类型直接用于事件属性。可以考虑将字符串数据存储在 data-* 属性中,然后通过 JavaScript 读取这个 data-* 属性值来动态构建 getCopyUrl()

相关推荐
无限大.几秒前
深入探讨HTML页面中CSS的加载顺序
前端·css·html
chengchong_cc24 分钟前
redis 缓存使用
前端·redis·缓存
Alan_Wdd1 小时前
解决谷歌人机验证 (reCAPTCHA) 无法加载问题
前端·chrome·浏览器·插件·人机验证·recaptcha
ndjnddjxn1 小时前
比赛的复现(2024isctf)
java·linux·前端
诗歌难吟4641 小时前
Marquee
javascript·数据结构
gqkmiss1 小时前
Chrome 132 版本开发者工具(DevTools)更新内容
前端·chrome·chrome devtools
喵个咪2 小时前
无头内容管理系统 Headless CMS
前端·后端·cms
网络点点滴2 小时前
第一个AJAX调用XMLHttpRequest
前端·javascript·ajax
恋猫de小郭2 小时前
Android 16 Baklava 来了,来看看开发者预览版给我们带来了什么
android·前端·flutter
匹马夕阳2 小时前
前端自动化部署之ssh2和ssh2-sftp-client
前端·javascript·自动化