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中是含有特殊字符的,(官网:www.fhadmin.org) 比如#,在发送请求的时候就不能被识别,需要对其进行转义。

修改后的代码:

 
<script type="text/javascript">
        /* 超链接请求特殊字符转换 (官网:www.fhadmin.org) */
        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函数中进行转义处理,这里主要在js函数中用到了escape()函数,然后将含有的特殊字符用replace()方法进行转义替换,在处理完成之后,再发送请求就好啦~~~~~

猜你喜欢

转载自zhoumeng87.iteye.com/blog/2391248