项目做到用<html:checkbox>传值,当选择下拉菜单时老是以乱码方式传值到Action中。心中一直没底,怎么会这样呢?想了很久,结果在Google上一搜索;他们都是说什么编码方式没有转换。此时,心中大喜。我有救了,于是,便编了一个类。如下:
package com.xicai.util;
import java.io.UnsupportedEncodingException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.RequestProcessor;
public class MyRequestProcessor extends RequestProcessor {
protected boolean processPreprocess(HttpServletRequest request, HttpServletResponse response) {
try {
request.setCharacterEncoding("gb2312");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return super.processPreprocess(request, response);
}
}
小心的在MyEclipse中部署了一边,打开url结果当我选择checkbox后;在action中得到的值还是一样,“乱码”。无语!没办法,只能看看网上还有没有绝招啦!突然,我冲进一MM的博客;嘿!她那上面有一篇文章介绍strut的原理;我认真的看了她的相片之后,哎,长的还过的去。于是,就看看那篇文章。辛苦啊!上面说加了别的java类就要在struts-config.xml中增加一个节点。我马上跑到我的项目上,加了一个节点。
<controller processorClass="com.xicai.util.MyRequestProcessor"></controller>好奇的再部署了一次,哎!OK.