[size=large]struts2+jquery+ajax乱码问题
刚开始学习javaee,采用了struts2+dbutils+ajax+jquery方面的东西,想在登录页面上做关于输入用户名时,如果数据库不存用alert给出一个提示,发现了乱码。我的页面都是gbk的也不想改了,struts2也是配置的gbk,因为ajax默认传参数的编码采用的utf-8,解决如下:
1,修改js代码:
var url = "validatename.action";
var m_username=encodeURIComponent($("#username").attr("value"));
var params = {username:m_username}; jQuery.post(url, params, callbackFun, "json");
2.修改validatename.action,转换通过ajax传过去的username的编码
this.username = java.net.URLDecoder.decode(username,"UTF-8");
以上两点要同时修改。
另外我觉得还有应该有个更好的方式,就是利用struts2的拦截器,写一个拦截器,来拦截所有ajax的请求,那样会更好,更通用一些,有高手可以参考一下那种做法。
原稿地址
http://www.blogjava.net/sdcharles/articles/321840.html[/size]
刚开始学习javaee,采用了struts2+dbutils+ajax+jquery方面的东西,想在登录页面上做关于输入用户名时,如果数据库不存用alert给出一个提示,发现了乱码。我的页面都是gbk的也不想改了,struts2也是配置的gbk,因为ajax默认传参数的编码采用的utf-8,解决如下:
1,修改js代码:
var url = "validatename.action";
var m_username=encodeURIComponent($("#username").attr("value"));
var params = {username:m_username}; jQuery.post(url, params, callbackFun, "json");
2.修改validatename.action,转换通过ajax传过去的username的编码
this.username = java.net.URLDecoder.decode(username,"UTF-8");
以上两点要同时修改。
另外我觉得还有应该有个更好的方式,就是利用struts2的拦截器,写一个拦截器,来拦截所有ajax的请求,那样会更好,更通用一些,有高手可以参考一下那种做法。
原稿地址
http://www.blogjava.net/sdcharles/articles/321840.html[/size]