是这样的。请先看下面的代码:
var URL = '/zmt/tiles/ry/openSelectField.jsp?excel=excel&where='+where; openwin(URL,'400','830');where的值是带有like和百分号的。例如:
where = "name like %林%"
参数传到openSelectField.jsp后。我使用下面的代码去拿到参数的值,如下:
String where = (String)request.getParameter("where");
但是却发现where = null。
碰到这个问题后,我就先用不带%的参数值。例如 whereExcel=" name = 林彬"
试一下openSelectField.jsp中是否可以拿到值。
结果是可以拿到的。
所以我就用了java中的URLEncoder来处理。
URLEncoder.encode(where,"UTF-8")
处理完后,再次调用如下代码:
var URL = '/zmt/tiles/ry/openSelectField.jsp?excel=excel&where='+where;
openwin(URL,'400','830');
则openSelectField.jsp上是可以拿到值的。
但是此时我在openSelectField.jsp上有一个按钮。点击完后,想把这个where传到action上去。
这个时候,无论我在action中如何处理,都是乱码。这样导致我无法访问数据库了。
在action中我是用RLDecoder.decode(where,"UTF-8");
来做的。
还试验了。 where = new String(where.getBytes("ISO8859_1"),"UTF-8");
以及request.setCharacterEncoding(arg0)
等方式。就是不行。
请问我该如何解决这个问题。
像javascipt中,还有encodeURI() 和encodeURIComponent等。目前还没有试过。
我觉得最主要是不是%百分号的问题。