在你的struts.xml中加入一句话<constant name="struts.i18n.encoding" value="gb2312"></constant>
这句话放在
<struts>
<constant name="struts.i18n.encoding" value="gb2312"></constant>
<package>.........</package>
................
</struts>
今天编了一个很简单的程序,没有用到struts等,同样是在前台实现数据的修改,其中有中文,在后台中接收时出现了中文乱码,网上给了很多方法,比如String name=new String("name".getBytes("iso-8859-1"),"UTF-8");等等的方法都试了,没用,最后在后台public class 类名 extends HttpServlet中加了一条语句全搞定,加了request.setCharacterEncoding("UTF-8");,这里要注意,method是post
n天后的今天,我又编了个代码,使用struts2,出现了jsp页面输入汉字传到数据库中,发生乱码:
解决方法:
根据Struts文档的规定:只要在Struts.xml中配置这段话就可以解决中文乱码问题
<constant name="struts.i18n.encoding" value="GBK" />
但是2..1.6版本中这是一个Bug,没法解决中文乱码问题
解决办法是:一:升级到2.1.7之后的版本;二是:使用spring的filter,在web.xml中配置过滤
三:在web.xml中配置2.0版本的filter
<filter>
<filter-name>struts2</filter-name> <!--<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>-->
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
我弄了半天,查文档终于搞好了,但你出现的问题可能和我的不一样,希望对你有用,没用的话,也希望你多看看文档,这是学习路上不可缺少的