2015-12-02 54 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"]} +"\");"'>