struts2中使用jquery进行ajax提交时乱码解决方案

struts2中使用juery时可以直接指定url为定义的某个action. 这样可以很方便的实现ajax效果。对于中文情况下可能会出现乱码的情况。


解决方案如下: 在客户端JS中使用window.encodeURI()函数对提交的中文字符进行处理,如:

$.post("addNewCategory.action", {'categoryName':window.encodeURI(中文值),'parentId':parentId}, function(val){callBackAddNewCategory(val);});//callBackAddNewCategory为回调函数,val为从服务区返回的数据 

 在后台定义的action中对该中文字符进行解析:

HttpServletRequest request=(HttpServletRequest) 
(actionContext.getContext().get(ServletActionContext.HTTP_REQUEST)); 
String categoryName=request.getParameter("categoryName"); 
categoryName=java.net.URLDecoder.decode(categoryName,"UTF-8"); 
在后台获取到需要返回的数据后通过ServletActionContext.getResponse().getWriter().write(返回的数据); 

 

你可能感兴趣的:(jquery,Ajax,.net)