struts2中URL与Action间的传值问题

如果URL为:……/adminGLZF!update.action?adminId=2&errorLog=%E4%B8%80
时在eclipse调试跟踪action中errorLog的值为:"errorLog"= "一"
如果URL中的errorLog跟的是英文action中的errorLog就正常的。
我的项目和jsp页面都是UTF8的

代码如下:

jsp页面
[code="html"][/code]

action
[code="java"]
public String getErrorLog() {
return errorLog;
}
//在URL为……/adminGLZF!update.action?adminId=2&errorLog=%E4%B8%80时刷新页面会先调用这个方法,其中errorLog就为 "一"了
public void setErrorLog(String errorLog) throws UnsupportedEncodingException {
this.errorLog = errorLog;
}
[/code]

struts.xml
[code="xml"]
adminGLZF!update?adminId=${adminId}&errorLog=${errorLog}

[/code]
[b]问题补充:[/b]
哦,谢谢,但要是服务器上的tomcat不支持uft8的话我又不能去改服务器上的server.xml,那要如何做呀?

2个回答

那就只好自己转码了,但是不建议这样做。因为Tomcat有这样的问题,别的容器就不一定了,比如,resin下面就不存在这种问题。
GET方法的参数是iso-8859-1编码的,可以这样:
[code="java"]
...
byte[] b=para.getBytes("iso-8859-1");
String bstr=new String(b,"utf-8");
...
[/code]

涉及GET方式的编码问题,在tomcat的server.xml改动Connector的URIEcoding为UTF-8,这样浏览器提交的URL时,tomcat会自动做这个转换。但是,仍不能在URL中直接写汉字(对于IE是这样的,Firefox则没有问题)。

[code="java"]

[/code]

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问