在thymeleaf变量中逃避撇号

时间:2015-12-02 16:42:19

标签: javascript html thymeleaf

我试图在使用百日咳作为字符串参数传递的变量值中转义撇号。我的代码如下所示:

<button type="button" class="btn btn-default btn-sm" th:id="${'delete'+document['oid_pj']}"
                th:if="${document['utilisateur'] == session.utilisateur}"
                th:onclick="'deletePj(\''+${document['oid_pj']}+'\',\''+ ${document['url']} +'\');'">

当解释html页面时,它看起来像这样:

<button type="button" class="btn btn-default btn-sm" id="deleteAS8bo00000F1T" onclick="deletePj('AS8bo00000F1T','//20150007/GIWkE0000FHUI//Creation d'un service GtMonitor.doc');">

所以来自“d'un”的撇号在它意图之前关闭参数。

有谁知道我怎么能逃脱它?

2 个答案:

答案 0 :(得分:1)

您可以尝试切换使用引号的方式

onclick='"deletePj(\""+${document["oid_pj"]}+"\",\""+ ${document["url"]} +"\");"'>

答案 1 :(得分:1)

在将${document['url']}(包含单引号的值)传递给javascript函数之前,请先将'替换为\'进行清理。使用th:with创建一个局部变量,该变量将用于存储已清理的值。使用#strings.replace进行替换。为防止编译错误,请在替换

时使用html实体&apos;而不是'
<input type="button" value="Click Me" 
            th:with='cleaned=${#strings.replace(document["url"], "&apos;", "\&apos;")}'
            th:onclick="'deletePj(\''+${document['oid_pj']}+'\',\''+ ${cleaned} +'\');'"/>

输出

<input type="button" onclick="deletePj('AS8bo00000F1T','//20150007/GIWkE0000FHUI//Creation d\'un service GtMonitor.doc');" value="Reconciliation">