隨筆-54  評論-0  文章-2  trackbacks-0

           

                                         員工的錄入和查詢(帶 條件查詢)

            今天做的是員工信息錄入和服務器端的驗證,目標是使用jQuery更熟悉,掌握分頁設計,更好理解Hibernate的一些以前未用過的類中的一些方法。

           一. 員工的錄入,并進行驗證

          1.顯示員工的錄入頁面

          1.jQuery validator 為表單做前臺驗證

          2.對登錄名的Ajax 校驗

          3.使用jQuery blockUI 插件提示Ajax 操作

          4.錄入員工信息

          2.服務器端的簡單驗證

           1.使用strutsvalidator框架

           2.email為例,email非空,且符合email格式

          3.員工錄入服務器端的復雜驗證

           1.數據庫,EmployeeAction中,得到登錄名

           2.對登錄名的可用性進行驗證,驗證登錄名在數據庫中是否存在

           3.這時可以采用struts的聲明式異常

          4.使用py4j 解決把漢字轉為對應的拼音: 佟剛--> tg, 張孝祥--> zxx, 黎活明--> lhm

           二.員工的查詢

          1.顯示員工信息:AJAX分頁

          使用displaytag 分頁顯示員工信息,記 錄不超過百萬條。簡單,使用。比如OA

          1.在tomcatwebapps目錄下展示其實例。

          2. OpenSessionInView

          1使用OpenSessionInView

           Hibernate中某一個類的引用屬性(也 包括集合屬性)采取懶加載策略,則可能出現懶加載異常,但沒有對其懶加載屬性進行初始化,此時關閉Session,然后再來獲取屬性,就會異常

          聲明使用spring的聲明式事務:

          <aop:config>

           <aop:pointcut expression="execution(* cn.itcast.ems.service.*.*(..))" id="emsTxPointcut"/>

           <aop:advisor advice-ref="emsTxAdvice" pointcut-ref="emsTxPointcut"/>

          </aop:config>

          OpenSessionInView可以解決這個問題,因為OpenSessionInView的使用流程是:

           request à open session 并開始transaction –>controller à view(jsp)à

          2.如何使用:

          web.xml配置:

          3.缺點:

          如果流程中的某一步被阻塞, 而這期間的 connection 卻一直被占用不被釋放. 例如輸出頁面時, 一方面可能是頁面內容大, response.write的時間長; 另一方面可能是網速慢, 服務器與用戶間傳輸時間久. 當大量這樣的情況出現時,就有連接池連接不足, 造成頁面假死現 象. 所以在內容多流量大的網站需慎用.

          3.翻頁相關的類:

          1.Page: 與具體 ORM 實現無關的分頁參數及查詢結果封裝

                 2. PropertyFilter: 與具體 ORM 實現無關的屬性過濾條件封裝類, 主要記錄頁面中簡單的搜索過濾條件

                 3. HibernateDao: 擴展 SimpleHibernateDao, 功能包括分頁查詢, 按屬性過濾條件列表:

                        1.不帶任何查詢條件時, 需要使用的方法:

                               --countCriteriaResult

                               --setPageParameter

                               --findPage(Page<T> page, Criterion...criterions)

          HibernateWebUtils

          分頁:

          不帶查詢的分頁

          employee-list-1.do --> Action --> Service --> DAO   

          2.查詢條件的翻頁:使用jQuery 的一個thickbox 插件完成查詢頁面的彈出

           1.jQuery的分頁插件

           2.在獲取第一頁的內容以后,如何 把查詢條件帶到第二頁

               --把封裝了查詢條件的List放到session域中,下一次從session中取。

                 --把查詢條件放在隱藏域中

          3.攜帶查詢條件

           使用jQuery提供的serialize()方法攜帶查詢條件(行不通)

             var url = this.href + “&” + $(“:hidden”).serialize();

              window.location.href=url;

           注意:上述方法在第一次不能起作用: 即不能再第一次把隱藏域中的參數帶過去, 因為在第一次點擊該鏈接時, href 的屬性值已經固定了, 不能再發生變化,

          而第二次點擊時, 因為第一次已經改變了該屬性的值, 所以好用

          所以必須在第一次點擊該鏈接之前讓 this.href = this.href + "&" + $(":hidden").serialize(); 起作用

          解決方案:

          $("#criteria").attr("href", $("#criteria").attr("href") + "&" + $(":hidden").serialize());

          今天就到這兒,明天continue!

          posted on 2010-03-06 23:50 d66380022 閱讀(342) 評論(0)  編輯  收藏
          主站蜘蛛池模板: 札达县| 景东| 庄浪县| 固阳县| 务川| 牡丹江市| 资中县| 剑川县| 内丘县| 海盐县| 旺苍县| 来安县| 湖口县| 卫辉市| 阳春市| 桂林市| 县级市| 永德县| 邵阳县| 神木县| 安多县| 犍为县| 新野县| 新沂市| 卓资县| 仁怀市| 祁门县| 宝鸡市| 鄂州市| 平湖市| 天祝| 常熟市| 吴旗县| 穆棱市| 布拖县| 白河县| 娱乐| 阿拉善盟| 宁乡县| 油尖旺区| 阜新市|