刚刚接触用struts进行web开发,发现struts在处理form的时候对中文的支持不是很好 ,在网上找了一通,找到一个可行的方法。注意,这里只是针对form乱码的处理,如果在action阶段有乱码,则须另行处理。步骤:
1。创建自己的EncodingProcessor类
package util;
import java.io.IOException;import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.RequestProcessor;
public class EncodingProcessor extends RequestProcessor {
@Override
public void process(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
// TODO 自动生成方法存根
request.setCharacterEncoding("GB2312");
response.setContentType("text/html;charset=GB2312");
super.process(request, response);
}
}
2。在struts-config.xml的<struts-config></struts-config>里加入一行
<controller processorClass="util. EncodingProcessor "/>
注意:不能放在最后,可放在<message-resources >一类的标签前面
在这里加上了请求处理器类处理编码问题就能赶在 ActionForm 填充之前设置编码, 如果在action类中设置编码则已经过了 ActionForm填充的阶段, 所以 form 中依然是乱码。
OK,再调试一下,Form类里是不是能正常显示中文了?
还是不能?找我!