2014-01-15 21 views
0

在我的JSP我得到以下值作爲字符串的Java/jQuery的:問題面臨着由於雙引號(「)中的字符串值

strFullContent:: 1BOOK OFFERS NO GUARANTEE OR WARRANTY THAT THE CRAFTS ARE WITHOUT ERROR. CRAFTS ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND 

在下面的代碼的應用是有

input type="hidden" name="strFullContent" id="strFullContent" value="<%=objCraftsUploadDataBean.getStrFullContent() %>"/> 

現在,當我在打印JSP價值,完整的價值是越來越打印。但是,當我試圖讓JS部分值值越來越牽強。

var fullcontent =document.getElementById('strFullContent').value; 

現在這個變量fullcontent只包含部分值。

fullcontent = 1BOOK OFFERS NO GUARANTEE OR WARRANTY THAT THE CRAFTS ARE WITHOUT ERROR. CRAFTS ARE PROVIDED 

按我的理解,問題是由於「中的價值。但我不知道解決的辦法。

+0

http://stackoverflow.com/questions/4526502/how-to-html-encode-in-the-jsp-expression-language,http://stackoverflow.com/questions/17919998/escape-all-strings-in-jsp-spring-mvc – user2864740

回答

0

更改您的輸入,並使用單引號了,而不是雙引號的價值,因爲價值還含有這些

value="<%=objCraftsUploadDataBean.getStrFullContent() %>" 

可以

value='<%=objCraftsUploadDataBean.getStrFullContent() %>' 

或者你可以逃脫他們,如果你仍然想牛逼o使用雙引號。

+0

轉義是唯一的*正確*解決方案,IMOHO。這些數據不包含''',因此它打破了,將來數據可能包含''',因此它會再次中斷。 – user2864740

+0

這也在答案中提到。 –

+0

它被稱爲一個非常小的腳註 – user2864740

0

值得一試

strFullContent = strFullContent.replace(/"/g, '\\"'); 
+0

用'"替換'''會更好一些' - 或者說,最好的(呃)使用現有的轉義支持。 – user2864740

+0

這不工作。獲得下面的例外。 – Aditya

+0

ServletException in:/views/frame/CraftContent.jsp]無法編譯JSP類:在jsp文件的第51行出現錯誤:/views/content/CraftUploadFive.jsp語法錯誤,插入「)」以完成表達式48:49:50:51:「/> 52:53:54:jsp文件中第51行出現錯誤:/views/content/CraftUploadFive.jsp無效的字符常量48:49:50:51:」/ > 52:53:54:Stacktrace:'org.apache.jasper.JasperException:無法編譯JSP的類:在jsp文件的第51行出現錯誤:/views/content/CraftUploadFive.jsp語法錯誤,插入「 )「來完成表達式48 – Aditya

相關問題