关于struts2 action之间传值 乱码问题

来源:百度知道 编辑:UC知道 时间:2024/09/20 06:51:31
关于struts2 action之间传值 乱码问题 些贴长期有效,寻求高人指点一二.
以下为例:
<action name="test1" class="com.test.action.LoginAction" method="Test1">
<result name="success" type="redirect">test2.action?username=${username} </result>
</action>

<action name="test2" class="com.test.action.LoginAction" method="Test2">
<result name="success">result.jsp</result>
</action>
在test2中接收到的参数username会是乱码。(username内容一定是中文而且一定是传中文)

在这里,我也不建议采用request or session的方式去存值,接收值,这样会有线程问题,请求高人解答。。。。。。。。
可是,我的整个项目和JSP,服务器都是统一编码的了(utf-8)
huanchenzi 这位朋友的答案可以采用的,但是扩展性不够强呀.如果我这个action之间转跳达到3次呢,如果再加上这一个servlet的编码转跳就会从原来的3次转跳增加到5次了.这样效率会低了

保证页面、Action、XML配置文件三者的编码方式一至。
以huanchenzi的思想为基础,可以写一个Servlet的全局过滤器,这样不用改动任何编码,就可以使用编码的转换。网上有很多现成的例子,如http://www.xingjian22.com/?p=384
如果不行,在链接数据库的后面也写上编码方式,如
jdbc:mysql://localhost:3306/doubles?useUnicode=true&characterEncoding=UTF-8

自己写一个Servlet 用于接收客户请求,继承Struts ActionServlet,在这个Servlet里只进行转码啊
把web.xml配置文件中的那个配置Servlet的地址改成你自己写的那个
试试,我以前写代码时遇到这种情况就是这样解决的

struts.xml里面设置编码,,

然后web.xml里面要有过滤器,设置编码!

页面的编码也要有

上面三者的编码要完全一致!