1. 程式人生 > >jsp頁面input的value中的值含英文雙引號處理方法

jsp頁面input的value中的值含英文雙引號處理方法

在做Jsp頁面開發時,我們經常使用JSTL表示式來進行頁面的輸出,但是突然遇到如下一個問題
問題描述:當資料庫中某個欄位帶雙引號時,input文字框使用Jstl表示式直接直接裝置value值時,會出現顯示為空
的不正常現象。

<input type="text" class="form-control" id="place" name="place" value="${place}">

上面這種情況看起來是正確的,但是沒有遇到特色情況,如果資料庫中place欄位的值是 "北京 大學" 或者北京"大學"
這種情況下該input輸入框的值會顯示什麼呢?
答案是:
第一種情況顯示 空白;


"北京 大學"


第二種情況顯示 北京


北京"大學"


當然上面兩種情況都不能顯示出正確的輸出,原因是input的value接收資料時會原樣輸出,
導致輸出英文的雙引號同html元素的雙引號進行了組合,產生了衝突,故不能產生正確的輸出。
若是想解決該問題,有很多實現方式,我提供如下兩種參考實現方法
1).使用jstl的另外一個表示式<c:out>實現,將value的值使用<c:out>表示式輸出

<input type="text" class="form-control" id="place" name="place" value="<c:out value="
${place}"></c:out>">

2).在服務端對雙引號進行轉義,即將雙引號替換成html的轉義字元"

place.replaceAll("\"",""");

以上只是其中2種實現方法,還有其他的實現,比如使用Jquery去改變value的值也可以實現