關於在頁面輸入特殊符號儲存到資料庫後,頁面查詢,特殊字元可以展示到頁面的問題
阿新 • • 發佈:2019-02-20
這是我的第one篇部落格,寫的有不好的希望大家可以多提提意見或者建議,謝謝!
前兩天專案需要寫一個頁面輸入特殊字元點選儲存,查詢資料庫需要將特殊字元(.,>,<,@,&,*[等程式裡的特殊字元])串展示到頁面上,查了一些資料,現在將自己的經驗分享給大家!
說到這裡,我想說hibernate真是一個強大的框架!<後續說為什麼>
前臺的寫法:
為了方便看省略一些程式碼吧。。。
<script type="text/html"> ... function save(){ var p =encodeURIComponent($.trim($("#p").val()));//頁面驗證字元編碼 if(驗證){ var parm ="&p="+$("#p").val() } } ajax.({ .... url:... data:'...'+param //引數傳進後臺
<span style="white-space:pre"> </span> ...
})
...
</script>
<span style="white-space:pre"> </span>
<span style="font-size:18px;">後臺(java)的程式碼,對字元做處理,java中有一些特殊字元的轉換標識:</span>
這樣就可以解決了。<pre name="code" class="java" style="font-size:14px;">MtsOutput mtsOutput = new MtsOutput() String p = paramBean.getP(); p = p.replace("<","<").replace(">",">"); mtsOutput .setP(P) ....
<span style="font-size:18px;">別走開,後面很精彩~~~</span>
<span style="font-size:18px;">在我debug的時候不小心註釋了後臺那行轉換程式碼發現頁面照樣可以展示出<,>,@,.,等符號,我迫不及待的翻閱資料這到底是怎麼一回事的時候,終於解出答案來</span>
<span style="font-size:18px;">這就是我前面所說的hibernate很強大的一個功能,原來hibernate機制本身就對有些特殊符號進行轉換了,只要給頁面jsp中新增《<span style="font-family: Arial, Helvetica, sans-serif;">encodeURIComponent</span><span style="font-family: Arial, Helvetica, sans-serif;"> 》一行程式碼就可以了,但是還有一些特殊符號hibernate機制沒有轉換,如&,這個符號,我又用了java程式碼的replace方法解決,可發現hibernate不支援,問題在陷入了僵局之時,有位大神指點迷津,在oracle的sql語句中有個函式replace,就上述問題而言,查詢資料庫展示到頁面,寫個sql查詢語句如下:</span></span><pre name="code" class="java">select replace(mo.p,'&','&') from Mts_Output mo where ...;
問題解決了!