Struts2在action配置文件中传参在JSP页面显示乱码的问题!!!! 50

<actionname="saveKc"class="com.cvicse.hs.cyxt.kcgl.action.KcglAction"method="saveKc">... <action name="saveKc" class="com.cvicse.hs.cyxt.kcgl.action.KcglAction" method="saveKc">
<result type="redirect">/kcgl/editKcInit.action?kcdm=${kcdm}&message=${message}</result>
在action1中定义String message="保存成功!";保存功能执行后,从这个action1传到另一个action2,然后在页面显示提示信息。有set和get方法。JSP页面用的都是GBK的编码方式。
我把配置文件中加入<constant name="struts.i18n.encoding" value="GBK" /> 解决乱码。但是不行!!!把tomcat下的config中的service文件中8080后加入URIencoding="GBK";也还是不行。在action2中message =new String(message.getBytes(),"GBK");还是乱码。郁闷死了..!谁能给我说下怎么解决这个乱码问题啊!!急~~~~~~~~~~~
唉,你们说的这些方法 我都用了 都不行 我真不知道哪里出问题了。
展开
 我来答
StarPlatinmu
2010-08-26 · 超过33用户采纳过TA的回答
知道答主
回答量:125
采纳率:0%
帮助的人:99.6万
展开全部
首先编写一个Filter
public class SetCharacterEncodingFilter implements Filter {
private Logger log = Logger.getLogger(this.getClass());
protected String encoding = null;
protected FilterConfig filterConfig = null;
protected boolean ignore = true;

public void destroy() {
this.encoding = null;
this.filterConfig = null;
}

public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
try{
if (ignore || (request.getCharacterEncoding() == null)) {
String encoding = selectEncoding(request);
if (encoding != null)
request.setCharacterEncoding(encoding);
}
chain.doFilter(request, response);
}catch(Exception e){
log.error("",e);
}
}

public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter("encoding");
String value = filterConfig.getInitParameter("ignore");
if (value == null)
this.ignore = true;
else if (value.equalsIgnoreCase("true"))
this.ignore = true;
else if (value.equalsIgnoreCase("yes"))
this.ignore = true;
else
this.ignore = false;
}

protected String selectEncoding(ServletRequest request) {
return (this.encoding);
}

}

然后修改web.xml,添加下面代码
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>com.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
<init-param>
<param-name>ignore</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

这样中文就不会是乱码了
Storm代理
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I... 点击进入详情页
本回答由Storm代理提供
zhanliang1217
2010-08-27 · TA获得超过460个赞
知道小有建树答主
回答量:683
采纳率:0%
帮助的人:400万
展开全部
只说一句“所有配置及JSP文件统一编码”
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fylsh
2010-08-26 · TA获得超过950个赞
知道小有建树答主
回答量:1472
采纳率:0%
帮助的人:1051万
展开全部
设置request对象的编码格式为GBK。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
代做JAVA设计
2010-08-26 · 超过54用户采纳过TA的回答
知道答主
回答量:196
采纳率:0%
帮助的人:155万
展开全部
配置一个过滤器.
把页面,程序,配置文件,数据库中的编码统一了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zm15t
2010-08-26
知道答主
回答量:64
采纳率:0%
帮助的人:20.2万
展开全部
<?xml version="1.0" encoding="UTF-8"?>

<result type= "chain">action2</result>
或<result type= "redirectAction">action2</result>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
whf196
2010-08-27
知道答主
回答量:25
采纳率:0%
帮助的人:8.6万
展开全部
GBK改成gb2312看一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式