javaWeb超鏈接(href)請求-特殊字符處理


寫在前面:

  最近在項目中,遇到一個問題,在點擊一個超鏈接時,頁面報錯。通過瀏覽器調試就可以知道發送的請求參數是不完整的,因為參數中含有特殊字符。所以就報錯啦~~

 

原代碼,不能正確發送含有特殊字符的參數:

<a href="<%=request.getContextPath()%>/kmsDisplayModifyMappingAction.do?mapping_id=<%=kmdb.getMapping_id()%>&k_projectname=<%=kmdb.getK_projectname()%>&projectcode=<%=kmdb.getProjectcode()%>" >modify</a>

其中k_projectname中是含有特殊字符的,比如#,在發送請求的時候就不能被識別,需要對其進行轉義。

修改后的代碼:

<script type="text/javascript">
        /* 超鏈接請求特殊字符轉換 */
        function formatSpecial(mapping_id,k_projectname,projectcode){
            //alert(k_projectname);
            var str = k_projectname.replace(/\"/g,'%22').replace(/\#/g,'%23').replace(/\'/g,'%27').replace(/\?/g,'%3F').replace(/\&/g,'%26').replace(/\=/g,'%3D');
            //alert(str2);
            location.href = "<%=request.getContextPath()%>/kmsDisplayModifyMappingAction.do?mapping_id="+mapping_id+"&k_projectname="+str+"&projectcode="+projectcode+"";
        }
    </script>
<a href="javascript:void(0);" onclick="formatSpecial('<%=kmdb.getMapping_id()%>','<%=kmdb.getK_projectname()%>','<%=kmdb.getProjectcode()%>')">modify</a>

主要思路是在點擊超鏈接之前,對需要傳遞的參數在js函數中進行轉義處理,將含有的特殊字符用replace()方法進行轉義替換,在處理完成之后,再發送請求就好啦~~~~~

  其中/\"/g的意思是/pattern/,代表的是正則表達式的界定符號,\表示轉義,\"表示",g表示匹配所有的,不寫的話只回匹配替換第一個。

  

交流群:527038646  嘻嘻嘻

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM