做级联下拉菜单的时候基本就用ajax了
eg:function selectHdept(){ var hosptial; var hdept; hospital=$("#yyhospital").attr("value"); hdept=$("#yyhdept").attr("value"); $.ajax({ url:"yysq!getexpert.action", type:"GET", data:{'hospitalId' :hospital,'hdeptName' :encodeURIComponent(hdept)}, dateType:"json", success:function(result){ if(result==null||result.length==2){ $("#expert").empty(); $("#expert").append("<option value=''>-----全部-----</option>"); return;} $("#expert").empty(); $("#expert").append("<option value=''>-----全部-----</option>"); var jsonObject=eval("("+result+")"); for(var e in jsonObject){ $("#expert").append("<option value='"+jsonObject[e][0]+"'>"+jsonObject[e][1]+"</option>"); } } }); }
其中的result是从后台返回的,在struts2的框架里感觉还是用
HttpServletResponse response = ServletActionContext.getResponse(); response.setContentType("text/html; charset=utf-8"); response.setHeader("Cache-Control","no-cache"); hdeptName=URLDecoder.decode(hdeptName,"utf-8"); List list=this.zzyyService.getExpert(hospitalId,hdeptName); JSONArray jsArr = JSONArray.fromObject(list); response.getWriter().append(jsArr.toString());
比较方便,其中的list可能是数组,也可能是对象数组
普通数组传到前端的result直接是json数组格式,对象数组传到前端是string格式
这时候需要用到强大eval函数将它转化为json数据对象。
list如果是对象数组集合list<object[]>,可以把object[]放入map结构,这样转换后在前台就可以得到json对象. (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|