zoukankan      html  css  js  c++  java
  • (转)JQuery+JSON+Struts返回一个List到页面 (二)

    转:http://blog.csdn.net/hitxueliang/article/details/6818186

    最近有人问我,怎么用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,希望对你有帮助哦

  • 相关阅读:
    Populating Next Right Pointers in Each Node II
    Populating Next Right Pointers in Each Node
    Construct Binary Tree from Preorder and Inorder Traversal
    Construct Binary Tree from Inorder and Postorder Traversal
    Path Sum
    Symmetric Tree
    Solve Tree Problems Recursively
    632. Smallest Range(priority_queue)
    609. Find Duplicate File in System
    poj3159最短路spfa+邻接表
  • 原文地址:https://www.cnblogs.com/wangle1001986/p/2649666.html
Copyright © 2011-2022 走看看