今天心情不错,解决了一些小bug,然后要进行下小总结了。。。。。
首先说这页面间传参,有时传的参数是带有空格的比如一小部分sql语句,怎么办呢?
两种解决方案:1.当进行form表单提交时,用隐藏术 2.当页面跳转时,即href .可用java方法:java.net.URLEncoder。
第一种方法是在页面中,加个隐藏域,如加上<input type="hidden" name="SearchCondition" id="SearchCondition" value="">
然后,在进行提交之前,用document.getElementById("SearchCondition").value="ss ss";或者
$("#SearchCondition").attr("value",“ss ss”);
第二种方法:
urlEncoded = java.net.URLEncoder.encode(szSearchCondition);
然后吧,<a href="XXX.jsp?page=<%=iPage+1%>&SearchConditionSelf=<%=urlEncoded%>"
就可以了。
再说接收端:
接收端对于上述两种情况,用普通的getParameter("")就可以了。。因为虽然第二种方法用了编码,但浏览器会自动帮我们解码的。。。
但接收端还要是分情况,主要针对有没有中文的情况:
如果没有中文,或者是有中文,但原form用的post方式提交,都可以直接用getParamter方式来接收。
巧的是,有中文,原form还必须要用get方式提交,这就得进行编码转换了,注意,我说的是编码转换,不是解码。
szSearchCondition = request.getParameter("SearchCondition");
if(szSearchCondition != null){
try{
szSearchCondition = new String(szSearchCondition.getBytes("iso-8859-1"),"gb2312");
}catch(Exception e){
e.printStackTrace();
}
原因很简单,在浏览器上传值用的都是latin1即iso-8859-1来传的。