写一个myActionServlet来并覆盖ActionServlet中的process()方法。
protected void process(HttpServletRequest request, HttpServletResponse response) throws java.io.IOException, javax.servlet.ServletException {
/**@todo Override this org.apache.struts.action.ActionServlet method*/
request.setCharacterEncoding('GB2312');//就加着一行一切都解决了
super.process(request, response);
}
当然别忘了改一下web.xml里面的配置
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>strutsdemo.myActionServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
这样可以解决在request提交数据时的乱码问题,在页面显示时出现乱码要
<%response.setContentType("text/vnd.wap.wml");%>或
<%@ page contentType="text/vnd.wap.wml;charset=utf-8" %>
在jsp页面里要正常显示中文则要加上
<%request.setCharacterEncoding("utf-8");%>