JQuery+JSON+Struts返回一個List到頁面
最近有人問我,怎么用JQuery+JSON+Struts實現,返回一個List到頁面,前面我已經講過了 一個簡單的登陸的例子,那是返回一個字符串,
這個例子有些不同,因為你要返回的是一個列表,而列表中都是實體:在這個實例中點擊公司名稱,返回子公司列表,從Action中返回List
這就需要用到JSONArray 把原來的List 轉化為JSONArray格式,我看到網上有相應的文章,但是相對麻煩,還有很多人自己寫代碼,實現普通的實體轉化為JSon對象,
這樣的人很厲害,但是有現成的為什么還自己動手呢,直接用JSON包中的不就行了嘛
準備:在你為整個項目添加了Struts之后(例子中是Struts2.1)
還要下載一個json-lib-2.4-jdk15.jar(我下載的是這個版本),添加到項目中
同時還要下載一個ezmorth-1.0.1.jar(我用的這個版本比較低,可以下載新的),否則就會出現 class net.sf.json.XXXX can't fount這樣的錯誤,就是一個類找不到,把
這個包加入就沒有問題了。
準備結束了,直接看代碼就行了:
首先看show.jsp
<script type="text/javascript" src="<%=basePath%>/js/jquery-1.3.1.js"> </script> <script type="text/javascript"> function GetTree(num) { var param={comNum:num}; $.ajax({ //采用Ajax方法 type:"post", //post方式 dataType:"json", //返回數據類型是JSON數據格式 data:param, //傳遞給Action的參數是param url:"ReturnTree", //處理的Action名稱 success:function(data){ //成功的處理函數 $.each(data,function(commentIndex, comment) { //遍歷返回數組的每一個實體 alert(comment.sshortName); //輸出實體的sshortName屬性的值 }) },"json"); } </script> </head> <body> <body id="bodyTree"> <div id="cmsTree"> <ul id="treemenu3" class="treeview"> <li> <strong>組織架構</strong> <a href="javascript:ddtreemenu.flatten('treemenu3', 'expand')"><strong>展開</strong> </a> <a href="javascript:ddtreemenu.flatten('treemenu3', 'contact')"><strong>收縮</strong> </a> </li> <li> //在這里調用JS函數參數是公司的ID <i></i><span onclick="GetTree('<%=company.getCompanyNum()%>')"><%=company.getCompanynameC()%></span> <ul> <li> <a href="#">彰化</a> </li>
Action的代碼:
public class DLCompanyAction { private String comNum;//接受頁面傳遞過來的公司ID參數 public String getComNum() { return comNum; } public void setComNum(String comNum) { this.comNum = comNum; } private JSONArray resultTree;//我要返回給頁面的List public JSONArray getResultTree() { return resultTree; } public void setResultTree(JSONArray resultTree) { this.resultTree = resultTree; } public String GetDLCTree() { dlc=new DLcompanyserviceImp();//dlc 是我項目中的一個service實現類,里面有一個方法就是下面的ReturnSubcompanyById,方法是根據給定的公司,返回公司的子公 司 列表 List<Subcompany> list=dlc.ReturnSbuCommpanyById(comNum); JSONArray jsarry=new JSONArray(); jsarry=JSONArray.fromObject(list); //或者JSONArray jsarry=JSONArray.fromObject(list) resultTree=jsarry; return "success"; } }
最后是Struts.xml的配置
<package name="TreeDL" extends="json-default"> <action name="ReturnTree" class="com.wit.action.DLCompanyAction" method="GetDLCTree"> <result type="json"> <param name="root">resultTree</param>//resultTree是Action中的返回變量 </result> </action> </package>
一切OK,希望對你有幫助哦.
轉自:http://blog.csdn.net/hitxueliang/article/details/6818186
本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!