最近在工作用遇到了struts2与前台ajax交互json数据的写法。摒弃了之前的response.getWriter().write 方法。
用以下方法进行了相关的实现:
后台服务器端:
JSONObject obj = JSONObject.fromObject(ResultOfMap); this.str = obj.toString(); //response.setCharacterEncoding("utf-8"); //response.getWriter().write(str); str=URLEncoder.encode(str,"utf-8"); str=str.replaceAll("\\+", "%20"); System.out.println(str); return SUCCESS; //注意这个str应该是action的全局变量。并且有set和get方法
Action的配置代码:
<package name ="permission-json-iwom-private" extends ="json-default"> <action name="ChangeWeiboAccountTab" class="com.unitop.uap.action.iwom.weibo.WeiboPrivateAction" method="ChangeWeiboAccountTab"> <result type="json"> <param name="root">str</param> //str为全局的变量 </result> </action> </package>
前台js解密:
$.ajax({ type: "post", url: "ChangeWeiboAccountTab.action", data : {userid : userid}, success: function(obj){ obj = decodeURIComponent(obj); obj = eval('('+obj+')'); //其中decode是js自带方法 } })
作者:zhang6622056 发表于2013-3-21 0:21:57 原文链接
阅读:76 评论:0 查看评论