gudaoxuri
2008-08-30 07:45 阅读 283
已采纳

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条回答 默认 最新

  • 已采纳
    qdzheng qdzheng 2008-08-31 10:20

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

    点赞 评论 复制链接分享
  • qdzheng qdzheng 2008-08-30 22:37

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

    [code="java"]

    [/code]

    点赞 评论 复制链接分享

相关推荐