2015-12-02 25 views
1

我试图逃避作为使用thymeleaf的字符串参数传递的变量的值中的撇号。我的代码如下所示:在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');"> 

所以从“德UN”撇号关闭参数之前,它的意思。

有谁知道我该如何逃脱它?

回答

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"> 
1

您可以通过\'更换'尝试切换围绕你如何使用引号

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