thymeleaf中onclick事件动态传递参数问题

475 阅读1分钟

问题

当我在帮我姐妹修改JSP代码时,我遇到一个看起来很简单但是对于我这个新手来说很困难的问题:传入中文的时候会传不上去。我就很纳闷,后来经过测试发现字符串的时候直接在函数括号内传参是不行的。

<button th:onclick="|out(${session.userBasic.nickName})|">测试</button>

解决:th:data

<button th:data="${session.userBasic.nickName}" th:onclick="|out(this.getAttribute('data'))|">测试</button>

动态传递多个参数: 参数中不包含字符串(多个参数之间使用,隔开) 传递两个参数:${session.user.id} ${session.user.age}

<button th:onclick="|test(${session.user.id},${session.user.age})|">

参数中包含字符串(多个参数之间使用,隔开) 传入三个参数${session.user.id} ${session.user.age} this.getAttribute('data') 字符串要使用th:data

<button th:data="${session.user.nickName}" th:onclick="|test(${session.user.id},${session.user.age},this.getAttribute('data'))|">