日期:2014-05-18  浏览次数:20788 次

关于JSP和JS传值的一些问题
最近我帮朋友做一个小的东西,在JSP传值的时候
我用到<a href="copeexcel.jsp?term=<%=term %>">XXX</a>其中,term为一变量,为SQL语句查询条件
" and function=12 and name like '%陈%'";
但是我的copeexcel.jsp接收数据时候,比如:String term = ""; term = request.getParameter("term");
term得到的值总是为NULL,我把term的值改为<a href="copeexcel.jsp?term="123"">XXX</a>
copeexcel.jsp页面又可以接收的到,最后反复的试,原来是%的问题,只要出现了%传的值就为NULL,
我没有办法,我就用JS传 window.location = "copeexcel.jsp?term="+term+"";
结果还是一样,最后 我就把只要出现%就替换成$,然后得到值后再替换回来,可以实现,
但是我总觉得不是很妥,请问还有没有更好的办法,在传值的时候可以出现%,我记得我以前做类似的传值的时候
没有出现这样的问题的,谢谢大家了。

------解决方案--------------------
为什么不用EL表达式呢? 
我们编写代码页面里面出现<%%>是禁忌
------解决方案--------------------
同1楼,用EL表达式,或者定义一个隐藏变量,讲你上述的URL在javascript中拼装
------解决方案--------------------
%是特殊字符,传递的时候需要用%25来代替%就可以了,这样
<a href="copeexcel.jsp?term= <%="and function=12 and name like '%25陈%25'%>">XXX </a>
------解决方案--------------------
发送爷面:
<%
String strTemp = "Ming%25";
%>
<a href="test.jsp?para=<%=strTemp %>">pass</a> a parameter to next page.

-------------
接收页面:

<%
String para = (String)request.getParameter("para");
out.print("Heihei,"+para);
%>
-------------
Summary:
用 "%25"代替"%"就可以了
------解决方案--------------------
<a href="copeexcel.jsp?term="<%=term %>"">XXX </a>