SSH框架,我需要通过URL进行传参,但传中文参数到了action就变成乱码,该如何最好解决?
4个回答
展开全部
在楼下回答问题之前 我已经跟楼主说过过滤器的问题了
楼主用的struts2.0 继承ActionSupport 已经有过效验
是用属性驱动形式获取 也并非request
而且服务器是websphere 而不是tomcat(不能配置conf server配置文件的URLEncode)
因此 我让楼主参考下这个:
http://wangpx.javaeye.com/blog/703450
配置一下 Dfile.encoding 也许可以
【答案补充】:
汗~~~~ 已经说过了 楼主用属性驱动效验的(相当于formbean),
userName=new String(user.getBytes(), "UTF-8");
不是request提交的,就算走了过滤器也只能转换request和response,怎么还有说那是正确的.. 请楼下的仔细审题吧。
楼主参考示例配置下struts配置文件试试吧
地址:http://wenwen.soso.com/z/q218582182.htm?sp=3671
如果不行 再Hi我 有空再找找别的资料
楼主用的struts2.0 继承ActionSupport 已经有过效验
是用属性驱动形式获取 也并非request
而且服务器是websphere 而不是tomcat(不能配置conf server配置文件的URLEncode)
因此 我让楼主参考下这个:
http://wangpx.javaeye.com/blog/703450
配置一下 Dfile.encoding 也许可以
【答案补充】:
汗~~~~ 已经说过了 楼主用属性驱动效验的(相当于formbean),
userName=new String(user.getBytes(), "UTF-8");
不是request提交的,就算走了过滤器也只能转换request和response,怎么还有说那是正确的.. 请楼下的仔细审题吧。
楼主参考示例配置下struts配置文件试试吧
地址:http://wenwen.soso.com/z/q218582182.htm?sp=3671
如果不行 再Hi我 有空再找找别的资料
展开全部
加个过滤器:
package com.test;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class EncodingFilter implements Filter{
public void init(FilterConfig filterConfig)
throws ServletException{
}
public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain)
throws java.io.IOException,
ServletException{
HttpServletRequest req = (HttpServletRequest)request;
HttpServletResponse res = (HttpServletResponse)response;
req.setCharacterEncoding("utf-8"); //对接收来的参数进行统一编码
res.setCharacterEncoding("utf-8"); /对返回去的参数进行统一编码
chain.doFilter(req, res);
}
public void destroy() {
}
}
web.xml 配置
<filter>
<filter-name>charFilter</filter-name>
<filter-class>com.test.EncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>charFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
package com.test;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class EncodingFilter implements Filter{
public void init(FilterConfig filterConfig)
throws ServletException{
}
public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain)
throws java.io.IOException,
ServletException{
HttpServletRequest req = (HttpServletRequest)request;
HttpServletResponse res = (HttpServletResponse)response;
req.setCharacterEncoding("utf-8"); //对接收来的参数进行统一编码
res.setCharacterEncoding("utf-8"); /对返回去的参数进行统一编码
chain.doFilter(req, res);
}
public void destroy() {
}
}
web.xml 配置
<filter>
<filter-name>charFilter</filter-name>
<filter-class>com.test.EncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>charFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一楼回答很正确,加过滤器能够完成需求,而且能够完成更多功能哦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
html页面的编码方式问题,一般都是看看
<meta contentType charset>这些设了没有
<meta contentType charset>这些设了没有
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询