今天做一个项目,因为用到回显的功能,需要在Struts2的配置文件中传中文,出现了问题,但是英文是没有问题的,弄了好久才弄好。
result有一个type的属性,这里的type默认是dispatcher,但是这种情况下action之间是不能发送请求的,这时我们就要用到redirect、redirect-action、chain,
当要请求一个action时,可以设定type为以上三个中的一个,我这里用到的是redirectAction。如果想要了解这三个参数值的区别,可以去网上查询,这里不做解释了。
我的项目界面是这样的:
当我进行中文查询的时候会查询出一些结果,然后可以进行添加、删除和修改 操作,操作完成之后仍然还在当前的页面,也就是说查询条件是仍然存在的。且以添加为例:
刚开始我的struts2的配置文件是这样写的:
<result name="saveOrupdateSuccess" type="redirectAction">TEfunuserAction_list?searchUser=${searchUser}</result>
也就是说通过添加之后再跳到Action对应的查询方法,查询条件通过searchUser传过去,但是测试好久中文都不可以,英文是完全没问题的,我很纳闷。
通过在网上查询相应的资料之后,将配置文件改成下面的即可解决中文问题:
<result name="saveOrupdateSuccess" type="redirectAction">
<param name="actionName">TEfunuserAction_list</param>
<param name="searchUser">${searchUser}</param>
</result>
我想应该是下面这种方式Struts2对中文编码做了相应的处理,问题得以解决了,以后要是再遇到这种问题就记住了。