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");还是乱码。郁闷死了..!谁能给我说下怎么解决这个乱码问题啊!!急~~~~~~~~~~~
唉,你们说的这些方法 我都用了 都不行 我真不知道哪里出问题了。 展开
<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");还是乱码。郁闷死了..!谁能给我说下怎么解决这个乱码问题啊!!急~~~~~~~~~~~
唉,你们说的这些方法 我都用了 都不行 我真不知道哪里出问题了。 展开
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>
这样中文就不会是乱码了
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 广告
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I...
点击进入详情页
本回答由Storm代理提供
展开全部
只说一句“所有配置及JSP文件统一编码”
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
设置request对象的编码格式为GBK。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
配置一个过滤器.
把页面,程序,配置文件,数据库中的编码统一了.
把页面,程序,配置文件,数据库中的编码统一了.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<?xml version="1.0" encoding="UTF-8"?>
<result type= "chain">action2</result>
或<result type= "redirectAction">action2</result>
<result type= "chain">action2</result>
或<result type= "redirectAction">action2</result>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
GBK改成gb2312看一下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询