項目做到用<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.