百度空间 | 百度首页 
 
查看文章
 
struts处理中文表单时乱码解决之道
2006-09-27 15:41

刚刚接触用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类里是不是能正常显示中文了?

还是不能?找我!


类别:编程开发 | 添加到搜藏 | 浏览() | 评论 (8)
 
最近读者:
 
网友评论:
1
2006-12-19 12:26 | 回复
thanks!!!
 
2
2007-04-17 11:57 | 回复
不错,非常感谢!!
 
3
2007-05-12 15:46 | 回复
太谢谢你了!!!
 
4
2007-05-16 20:08 | 回复
真的太感谢你了
 
5
2007-06-29 20:11 | 回复
无限感激,你解决了我的问题
 
6
2007-07-11 11:45 | 回复
无限感激,你解决了我的问题
 
7
2008-03-15 20:59 | 回复
感谢,回公司去试试,不知道能不能用,哎,试了很多方法了,filter什么的 ,希望这个能行
 
8
2008-04-26 22:00 | 回复
真的非常感谢
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu