posts - 41,  comments - 8,  trackbacks - 0
          <?xml version="1.0"?>
          <!DOCTYPE hibernate-mapping PUBLIC 
              "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
              "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
          > 
                 
          <hibernate-mapping>
                 
          <class name="com.model.Order"  table="t_order" lazy="false">
                     
          <id name="orderId" column="OrderId">
                         
          <generator class="uuid.hex" />
                     
          </id>
                     
          <property name="name" column="Name" type="string" />
                     
          <property name="desn" column="Desn" type="string"/>
                     
          <property name="booktime" column="Booktime" type="string"/>
                     
          <property name="company" column="Company" />
                     
          <many-to-one lazy="false" name="custom" column="CustomId" class="com.model.Customer" />
                 
          </class>
             
          </hibernate-mapping>        CUSTOM.XML
          <?xml version="1.0"?>
          <!DOCTYPE hibernate-mapping PUBLIC 
              "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
              "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
          > 
             
          <hibernate-mapping>
                 
          <class name="com.model.Custom"  table="t_custom" lazy="false">
                     
          <id name="customId" column="Id">
                         
          <generator class="uuid.hex" />
                     
          </id>
                     
          <property name="customName" column="Name" type="string" />
                 
          </class>
             
          </hibernate-mapping>

                  相應的MODEL的JAVA我就不寫了,只是做個例子而已,呵呵!相應的DAO SERVICE 我都不寫了,這個不是我討論的范圍,那么我想在頁面上顯示所有的信息,那么在OrderAction中我定義了一個getAllOrder的方法,然后通過struts2配置action讓EXTJS與服務器數據進行數據交互。因為EXTJS是支持JSON數據格式的,所以我用了JSON-LIB(json-lib-2.2.1-jdk15.jar)這個東東,它還依賴另外的3個包:commons-beanutils-1.7.1-20061106.jar,commons-collections-3.2.1.jar,ezmorph-1.0.4.jar。好了萬事俱備只欠東風了,我的getAllOrder方法如下:
          import java.text.DateFormat;
          import java.text.ParseException;
          import java.text.SimpleDateFormat;
          import java.util.Date;
          import java.util.List;
          import net.sf.json.*;
          //具體的那些serivce的包引入我就省略了
          public class OrderAction extends ActionSupport
          {
             
          private static final long serialVersionUID = -5092865658281004791L;
              
          private IOrderSerivce orderSerivce;
              
          private String jsonString;//這個就是中轉站了
              private List<Order> orderList;//這個是數據鏈表
              private int totalCount;//這個是extjs用來分頁
               public String getJsonString()
              
          {
                  
          return jsonString;
              }

               
          public void setJsonString(String jsonString)
              
          {
                  
          this.jsonString = jsonString;
              }

              
          public int getTotalCount()
              
          {
                  
          return totalCount;
              }

              
          public void setTotalCount(int totalCount)
              
          {
                  
          this.totalCount = totalCount;
              }

              
          public List<Air> getOrderList()
              
          {
                  
          return orderList;
              }

              
          public void setOrderList(List<Order> orderList)
              
          {
                  
          this.orderList = orderList;
              }

              
          public void setOrderSerivce(OrderSerivce orderSerivce)
              
          {
                  
          this.orderSerivce = orderSerivce;
              }

              
          public String getAllAir()
              
          {
                  orderList 
          = orderSerivce.getOrderAll();
                  
          this.setTotalCount(orderList.size());
                  
                  JSONArray array 
          = JSONArray.fromObject(orderList);
          //哈哈,就是在這里進行轉換的
                  this.jsonString = "{totalCount:"+this.getTotalCount()+",results:"+array.toString()+"}";
              
          return SUCCESS;
              }

          }
                  接下來再是什么,哦,是的,應該是STRUTS的配置了,哈哈
          <!DOCTYPE struts PUBLIC
              "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
              "http://struts.apache.org/dtds/struts-2.0.dtd"
          >

          <struts>
                
          <package name="order" extends="struts-default">
          <action name="getAllOrder" class="orderAction" method="getAllOrder">
                      
          <result name="success" >jsondata.jsp</result>
                  
          </action>
                
          </package>
          </struts>
                  好的,看到jsondata.jsp了么,這里就是要放數據的地方,看看是什么吧!
          <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
          <%@ taglib prefix="s" uri="/struts-tags" %>
          <s:property value="jsonString" escape="false" />
                  是的,就是這么簡單的一個代碼!終于要到前臺了,該露臉了,呵呵,前臺代碼最關鍵的也就是JS代碼,那么我也就只貼JS了相信大家看過后都會自己弄清楚的!
          /*
           * Ext JS Library 2.1
           * Copyright(c) 2006-2008, Ext JS, LLC.
           * licensing@extjs.com
           * 
           * http://extjs.com/license
           
          */



          Ext.onReady(
          function(){
              Ext.BLANK_IMAGE_URL 
          = 'ext/resources/images/default/s.gif'; 
              Ext.QuickTips.init();
              
          var xg = Ext.grid;
              
          //這里就是設置解析格式的地方,一定要和你的Model一樣,要不然可是什么都得不到哦~~~~
              var rd = new Ext.data.JsonReader({
                          
          //總記錄數
                          totalProperty: 'totalCount', 
                         
          //哪兒是數據的頭,可以看action里面是怎么定義數據格式的,這里就是如何解析的           
                              root: 'results', 

                          //有那些字段呢?
                          fields:[
                                   
          {name:'orderId'},
                                                {name:'desn'},
                                   
          {name:'booktime'},
                                   
          {name:'company'},
                                   
          {name:'name'},
                                      
          //這里就是對custom對象進行映射的地方                        
                                                {name:'customId' ,mapping:'custom.customId'},
                                   {name:'customName',mapping:'custom.customName'}
                                   ]
                                               }
          );
               
          var ds = new Ext.data.Store({
                                              proxy: 
          new Ext.data.HttpProxy
          (
          {url: 'getAllOrder.action',method:'POST'}),//Url很關鍵,我就是因為沒配好這個,POST方法很重要,你可以省略,讓你看下錯誤也行的!耽誤了一大堆時間!
                                              reader:rd
                                          }
          );
               ds.load();
               
          var sm =new xg.CheckboxSelectionModel(); //CheckBox選擇列
               var cm =new xg.ColumnModel([
                                            
          new Ext.grid.RowNumberer(), //行號列 
                                            sm,
                                            
          {id:'orderId',header: "訂單號", dataIndex: 'name'},                           {header: "訂單時間",   dataIndex: 'booktime'},
                                            
          {header: "訂單公司", dataIndex: 'company'},
                                            
          {header:"客戶姓名",dataIndex:'customName'}
                                           ]);
                                           cm.defaultSortable 
          = true;
              
          ////////////////////////////////////////////////////////////////////////////////////////
              // OrderGrid 
              ////////////////////////////////////////////////////////////////////////////////////////

              
          var ordergrid = new xg.GridPanel({
                                            ds: ds,
                                            sm: sm, 
                                            cm: cm, 
                                            width:
          1000,
                                            height:
          500,
                                            frame:
          true,
                                            title:'Framed 
          with Checkbox Selection and Horizontal Scrolling',
                                            iconCls:'icon
          -grid',
                                            renderTo: document.body
                                           }
          );
              ordergrid.render();

          }
          );

          posted on 2008-10-02 00:37 Loy Fu 閱讀(4014) 評論(0)  編輯  收藏 所屬分類: ext
          主站蜘蛛池模板: 深水埗区| 富阳市| 崇文区| 武山县| 同江市| 大同市| 临西县| 青河县| 宾阳县| 和静县| 凤城市| 大荔县| 济阳县| 利川市| 克拉玛依市| 合川市| 旬阳县| 黔西| 石景山区| 桓台县| 南召县| 金堂县| 曲靖市| 白银市| 从化市| 新野县| 聊城市| 宝丰县| 上高县| 北辰区| 都兰县| 富民县| 鄱阳县| 子洲县| 郎溪县| 大理市| 宝山区| 乐陵市| 彩票| 马鞍山市| 古蔺县|