编写一个用于转换编码的类Character继承 org.apache.struts.action.RequestProcessor类
重写
protected boolean processRoles(HttpServletRequest request,HttpServletResponse response, ActionMapping mapping)
和
protected void processContent(HttpServletRequest request,HttpServletResponse response)
方法。代码如下:
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.RequestProcessor;
public class Character extends RequestProcessor{
protected boolean processRoles(HttpServletRequest request,
HttpServletResponse response, ActionMapping mapping)
throws IOException, ServletException {
return super.processRoles(request, response, mapping);
}
protected void processContent(HttpServletRequest request,
HttpServletResponse response) {
try {
request.setCharacterEncoding("gb2312");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
super.processContent(request, response);
}
}
在struts配置文件中加入一个controler:
processorClass属性指向刚才所编写的类
<controller contentType="text/html;charset=utf-8"
processorClass="com.bjjdsy.projectManager.util.Character" />
这样一来就不用在每个Action中再进行编码的转换了