传递与转换Json值

来源:互联网 发布:我知你好 未再91baby 编辑:程序博客网 时间:2024/06/05 11:39
描述:在jsp页面中异步提交xx请求,回调函数中期望返回的是json数据或直接是字符串数据Example①:Js中$.post("kynamicAction_hasChildren.do",params,function(data){   if("true" == data){//有孩子     alert("因为有子节点,所以不能删除");}});Action中response.setContentType("text/html;charset=utf-8");PrintWriter writer = response.getWriter();if(_kynamic == null){    writer.print("false");              此例为返回到js中的直接为简单字符串数据}else{writer.print("true");}Example②:Action中Set<Version> versions = _kynamic.getVersions();response.setContentType("application/json;charset=UTF-8");PrintWriter writer = response.getWriter();if(versions.size()>0){//JSONArray jsonArray = Object2Json.toJsonArray(versions, "过滤属性");    writer.print(JSONArray.fromObject(versions));}Js中$.post(url,params,function(data){userTree.zTree = $("#menuTree").zTree(userTree.setting, data);    userTree.zTree.expandNode(userTree.zTree.getNodes()[0], true, false)                 });Example①和②需要的jar如下json-lib-2.4-jdk15.jarezmorph-1.0.6.jarcommons-logging.jarcommons-lang.jar   (不能是3-3.1)commons-collections.jarcommons-beanutils.jarExample③Action层List<User> userList = userService.findObjects(queryHelper);//创建Json对象JSONObject jso = new JSONObject();jso.put("msg", "success");jso.accumulate("userList", userList);//转换               //输出用户列表以json格式字符串形式输出HttpServletResponse response = ServletActionContext.getResponse();response.setContentType("text/html");ServletOutputStream outputStream = response.getOutputStream();outputStream.write(jso.toString().getBytes("utf-8"));outputStream.close();Js中$.ajax({                    url:"${basePath}sys/home_getUserJson2.action",                    data:{"dept":dept},                    type:"post",                    dataType:"json",//返回数据类型                    success: function(data){                        //2.1、将用户列表设置到被投诉人下拉框中                        if(data != null && data != "" && data != undefined){                            if("success" == data.msg){                                var toCompName = $("#toCompName");                                toCompName.empty();                                $.each(data.userList, function(index, user){                                    toCompName.append("<option value='" + user.name + "'>" + user.name + "</option>");                                });                            } else {alert("获取被投诉人列表失败!");}                        } else {                            alert("获取被投诉人列表失败!");                        }                    },                    error:function(){alert("获取被投诉人列表失败!");}                });需要的jarcommons-beanutils,ezmorph,jsonlibExample④,在struts2的框架上传递jsonAction层public String getUserJson(){        return_map = new HashMap<String, Object>();//为return_map添加get/set方法        return_map.put("msg", "success");        return_map.put("userList", userService.findObjects(queryHelper));        return SUCCESS;    }Js层<package name="sysHomeJson-action" namespace="/sys" extends="json-default">        <action name="home_getUserJson2" class="cn.itcast.home.action.HomeAction" method="getUserJson2">            <result type="json">                <param name="root">return_map</param>//设置root为要提交的对象            </result>        </action>    </package>需要的jar:struts2-json-plugin-2.3.20.jar
原创粉丝点击