空間站

          北極心空

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            15 Posts :: 393 Stories :: 160 Comments :: 0 Trackbacks
          官方要理解dwr.xml假如我在項目的BUS前面我們提到,DWR講到這里,我們現(xiàn)在重新回到dwr.xmlcreate creator="spring" javascript="DepartmentBus" scope="script">  
        1.       <param name="beanName" value="departmentBus"/>  
        2. create>  
          1. Creator包中找到一個的文件。在該文件下的中可以看到。

            是用于你在中調用這個對象時使用什么名稱,強烈建議你使用首字母大寫,這樣在頁面中很容易看出這是一個與后臺對應的對象。如果你使用了并且在中選擇了,那么你需要一個叫的參數,而其值就是在配置文件中配置的,如另外個非常有用的參數是可以禁止頁面調用后臺的某個或某些方法,具體的寫法是在中加入:exclude method="createDepartment"/>  

              method部分寫的是這些方法不帶括號的方法名,如果有多個就寫多行則規(guī)定頁面只能調用某些方法。

              dwr.xmlconvert match="com.htxx.demo.datasource1.model.Department"    

            1. javascript="Department" converter="hibernate3"/>  
              1. match用于告訴

                如果你使用后一種方法去批量注冊對象,那么你就不能這樣初始化這個對象而只能這樣手動注冊:

                Var dep = {departmentId:null, departmentName:null, ……};

                我推薦大家采用第一種方法的好處可以在我后面寫的《DWR幫助說明-如何編寫通用的單行編輯框DWR幫助說明-dwr的bug及其解決方法首字母大寫。Converter用于告訴用什么的類來執(zhí)行轉換,常用的轉換器有等。有哪些轉換器可以在(該文件的位置見前文)中找到。我需要強調的是,如果朋友們使用了,那么你需要將需要使用的所有值對象都通過轉換器注冊。但是我在網上看見很多朋友都使用轉換器來注冊。如果你使用來轉換值對象,在運行程序的時候會出現(xiàn)很多問題(這些問題我就不詳述了),同時還會出現(xiàn)效率的問題,因為會將該值對象的所有屬性,及其這些屬性的所有屬性,所有屬性的屬性,都以窮舉的方式取出來。熟悉的朋友應當馬上明白這樣將是數據庫操作的一個災難。如果你使用作為轉換器將不會發(fā)生這樣的事,同時,還較好地解決了延遲查詢的問題,但官方建議我們使用,這我也不再詳述,不清楚的朋友可以查閱的幫助文檔。但另一個問題我不得不提,在使用延遲查詢的時候其實還是有問題的。譬如有一個值對象包含一個的屬性,根據延遲查詢的規(guī)則,在某個時,屬性不會馬上裝載,即使執(zhí)行也不會裝載。必須到真正對這個操作的時候才會裝載。既然如此,問題就來了,我們使用執(zhí)行查詢的時候,常常是真正到頁面才會讀取,這時已經是脫離服務器端到頁面端了而不能再得到。這個問題怎么辦呢,最好的辦法是在服務器端就提前裝載頁面需要使用的屬性,因為作為開發(fā)者他肯定知道哪些屬性要在客戶端使用,哪些屬性不需要。至于如何在服務器端就提前裝載,感興趣的朋友在我的示例中看到。另外一個需要提的是,與一樣,轉換器也可以一樣地設置參數。但是與不同的是,它們說明在轉換對象的時候需要轉換或不轉換某些屬性。這個參數對于的一對一關聯(lián)非常重要。在中一對一關聯(lián)是不做延遲查詢的,假如有一個值對象與值對象是一對一關聯(lián),那么中有的屬性,而中有的屬性。由于一對一關聯(lián)不做延遲查詢,當在轉換一個是會裝載它的屬性,然后在裝載的時候,又會去裝載中的屬性。如此這樣,就會形成一個死循環(huán),最后以堆棧溢出告終。解決這個問題的辦法就是禁掉中的屬性,避免產生死循環(huán)。具體寫法如下:

                xml 代碼
                1. <convert match="com.htxx.demo.model.Address" javascript="Address" converter="hibernate3">  
                2.     <param name="exclude" value="employee"/>  
                3. </convert>  

                Value部分是需要轉換的屬性,如果有多個則用逗號隔開就可以了。一個dwr+spring+hibernate的示例

                posted on 2007-10-15 09:45 蘆葦 閱讀(749) 評論(0)  編輯  收藏 所屬分類: JAVA
                主站蜘蛛池模板: 合作市| 鲁甸县| 鄱阳县| 泰顺县| 景泰县| 长岛县| 武冈市| 岳西县| 宁海县| 长春市| 繁昌县| 通道| 阜阳市| 连城县| 惠水县| 泸水县| 徐水县| 溧水县| 始兴县| 安仁县| 鲁山县| 古田县| 娱乐| 西畴县| 乐陵市| 龙游县| 陇南市| 博罗县| 阳城县| 崇阳县| 手游| 定南县| 巴马| 太仓市| 祁阳县| 琼结县| 乌海市| 晋江市| 济南市| 连州市| 赤城县|