<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-34  評論-1965  文章-0  trackbacks-0

    從本文開始,我將會開始一個全新系列的文章——《Seam系列》。如果有關心我的博客的朋友,應該知道早前一年多的時間我都使用Seam使用開發項目,可以算得上是略有小成。因此,我很希望與大家分享一下Seam的經驗。

    為什么要使用Seam

    這個問題Seam的官方文檔以經做了很好的回答。為了方便不喜歡看文檔的朋友(不過,可以負責任地告訴你“這不是一種好習慣!” :-),如果你希望完整地了解一門技術,反復閱讀文檔是必不可少的。甚至可能需要查看源代碼,當然這是對開源的技術而言),我將其中一些要點抽取出來:

    • 只有一種“工具”  Seam中的表現層組件和業務邏輯組件之間并沒有區別。 你可以根據你設計的任何架構給應用程序進行分層,而不是強制將你的應用程序邏輯硬塞進一個由你目前在使用的任何框架組合所強加給你的不適當的分層配置中。
    • 將JSF與EJB 3.0整合  Seam將JSF和EJB3的組件模型合二為一,消除了膠合代碼,使得開發者專注于業務問題。
    • 集成AJAX  Seam支持兩個最好的、開源的基于JSF的AJAX解決方案:JBoss RichFaces和ICEfaces。
    • 將業務流程作為首要的基礎建筑  Seam可以選擇通過jBPM提供透明的業務流程管理。
    • 聲明式狀態管理  聲明式應用程序狀態管理通過Seam定義的豐富的context model(上下文模型)而成為可能。Bijection(雙向注入)  Bijection(雙向注入)和IoC的不同之處在于它是動態的、語境相關的以及雙向的。
    • 工作區(Workspace )管理和多窗口瀏覽  Seam應用程序讓用戶自由地在多個瀏覽器窗口中切換,每個窗口都與一個不同的、安全隔離的對話關聯。
    • 多些注解(Annotation),少些XML  這讓你擺脫了對繁瑣的JSF managed bean(JSF受管bean)的配置,減少了所需的XML,只剩下那些真正屬于XML的信息(JSF導航規則)。
    • 集成測試輕而易舉  Seam組件作為POJO,天生就是可以進行單元測試的。
    • 規范也非盡善盡美  在規范中有許多漏洞(例如,GET請求的JSF生命周期中的局限性),Seam修正了這些漏洞。
    • Web應用程序不只是服務HTML頁面  Seam為持久化集成了JPA和Hibernate 3,為輕量化的異步性集成了EJB Timer Service和Quartz,為工作流集成了jBPM,為業務規則集成了JBoss規則,為電子郵件集成了Meldware Mail,為完整的文本搜索集成了Hibernate Search和Lucene,為消息集成了JMS,以及為頁面片斷捕捉集成了JBoss Cache。

    準備開發環境

    要方便地編寫Seam應用,我要做一些準備工作。

    1. 下載Seam框架  大家可以通過以下鏈接下載http://seamframework.org/Download。建議大家下載最新的2.1.1.GA版本。解壓到本地目錄,如d:\SeamDev\。
    2. 下載JBoss應用服務器  大家可以通過以下鏈接下載http://www.jboss.org/jbossas/downloads/。建議大家下載最新5.0.1.GA的版本。解壓到本地目錄,如d:\SeamDev\。
    3. 下載Ecplise開發環境  大家可以通過以下鏈接下載http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/ganymede/SR2/eclipse-jee-ganymede-SR2-win32.zip。解壓到本地目錄,如d:\SeamDev\。
    4. 下載JBoss Tools插件  大家可以通過以下鏈接下載http://sourceforge.net/project/downloading.php?groupname=jboss&filename=JBossTools-ALL-win32-3.0.0.CR2-R200901280154.zip&use_mirror=biznetnetworks。解壓到本地目錄,如d:\SeamDev\。因為這是一個RC版本,大家可以通過LINK的方式將其安裝到Eclispe,這樣可以方便大家升級到正式版(將文件夾替換即可)。具體步驟:
      1. 開打Eclipse下的links文件夾,如d:\SeamDev\eclipse\links。
      2. 新建后綴名為*.link的文件,如JBossTools.link。
      3. 向文件加入內容如path=d:/SeamDev/JBossTools-3.0.0.CR2,保存并關閉文件。

    第一個Seam應用

    在完成上述的準備工作后,大家就可以通過Eclipse的向導生成一個簡單的應用啦。

    1. 運行Eclipse,選擇菜單Window->Perferences,在出現對話框中在左上角的輸入框中輸入“seam”,如圖所示:
    2. 點擊“Add”,在出現的“New Seam Runtime”的對話框中,點擊“Browse”,選擇Seam的解壓路徑如:D:\SeamDev\jboss-seam-2.1.1.GA,在“Version”下拉菜單中選擇“2.1”,點擊“Finish”。
    3. 點擊“Perferences”對話框中的"OK",關閉對話框。
    4. 點擊菜單“File->New->Project”,在輸入框中輸入“Seam”,點擊“Seam Web Project”,點擊“Next”,如下圖所示:
    5. 在“Project Name:”輸入“Hello”,點擊“Target Runtime”中的“New”。
    6. 在出現的“New Server Runtime Environment”對話框中,展開“JBoss, a division of Red Hat”,選擇“JBoss 5.0 Runtime”,點擊“Next”,如下圖所示:
    7. 在出現的對話框中,點擊“Browse”,選擇JBoss解壓的路徑,點擊“Finish”。
    8. 回到“New Seam Project”對話框,點擊“Target Server”中的“New”。
    9. 在出現的對話框中,選擇“JBoss AS 5.0”,點擊“Finish”。如圖所示:
    10. 再次回到“New Seam Project”,在“Configuration”中的下拉菜單中選擇“Dynamic Web Project with Seam 2.0(technical preview)”,點擊“Next”,如下圖所示:
    11. 在“Web Module”對話框,再點擊“Next”。
    12. 在“JSF Capabilities”對話框,再點擊“Next”。
    13. 在“Seam Facet”對話框中的“Deploy As”中選擇“EAR”,在“Connection Profile”中點擊“New”。
    14. 在“Connection Profile Types”中選擇“HSQLDB”,修改“Name”為“HelloDB”,點擊“Next”。
    15. 在出現的對話框中,點擊圖標
    16. 在出現的對話框中,選擇“HSQLDB JDBC Driver”,如下圖所示:
    17. 點擊“Jar List”,選擇“hsqldb.jar”,點擊“Remove JAR/Zip”。
    18. 點擊“Add JAR/Zip”,在文件選擇對話框中選擇Seam文件夾下的“lib”下的“hsqldb.jar”,路徑如:d:\SeamDev\jboss-seam-2.1.1.GA\lib\hsqldb.jar,點擊“OK”。
    19. 在“Database”輸入框中輸入“HelloDB”,選擇“DB Location”,路徑如:“F:\Workspace\BlogJava\HSQLDB\HelloDB”,可以點擊“Test Connection”,如果設置正確應該會出現“Success”對話框,點擊“OK”,再點擊“Finish”。
    20. 回到“New Web Project”對話框,如進行下圖所示設置后,點擊“Finish”。
    21. 在可能出現的切換對話框中,點擊“OK”。
    22. 通過上述步驟,我們已經新建一個Seam工程。在Eclipse的“Project Explorer”窗口中,你可能見到有紅色的交叉提示錯誤,點擊屏幕下方的“Problems”窗口,雙擊錯誤提示,打開pages.xml文件,如下圖所示:
    23. 點擊垂直滾動條右邊的紅色錯誤提示,定位到出錯內容,如下圖所示:
    24. 將出錯的“log-level”改為“logLevel”,即可消除錯誤,保存文件。
    25. 點擊屏幕下方的“JBoss Server View”,開啟JBoss服務器,如下圖所示:
    26. 打開瀏覽器,鍵入http://localhost:8080/hello/,你將會看到如下圖所示頁面:
    27. 點擊“Login”,在“Username”鍵入“admin”,再點擊“Login”,可以成功登陸。

    小結

    通過上述的步驟,我們已經創建了一個簡單Seam應用。這個應用正所謂是“麻雀必小五臟俱全”,包括WEB的常用的布局、圖片,樣式表和簡單的登陸實現、錯誤處理等。

    posted on 2009-03-12 01:13 Max 閱讀(7700) 評論(13)  編輯  收藏 所屬分類: Seam系列

    評論:
    # re: Seam之初體驗 2009-03-12 08:25 | koumei
    That's cool, buddy.  回復  更多評論
      
    # re: Seam之初體驗[未登錄] 2009-03-12 10:30 | Vincent
    Good~ Thanks for sharing  回復  更多評論
      
    # re: Seam之初體驗 2009-03-12 11:53 | Rique
    學習了!  回復  更多評論
      
    # re: Seam之初體驗 2009-03-12 15:08 | 陽衡鋒
    非常喜歡博主的文章,最開始從struts2開始的。
    你寫的文章很好閱讀,謝了。  回復  更多評論
      
    # re: Seam之初體驗 2009-03-12 15:50 | JArcher
    HO~~~終于更新了  回復  更多評論
      
    # re: Seam之初體驗 2009-03-12 20:28 | Max
    @koumei
    @Vincent
    Nice to be back.  回復  更多評論
      
    # re: Seam之初體驗 2009-03-13 19:24 | koumei
    I am expecting more. :-)  回復  更多評論
      
    # re: Seam之初體驗 2009-03-27 14:36 | cx
    要支持一下.  回復  更多評論
      
    # re: Seam之初體驗 2009-03-27 15:52 | shong
    支持樓主的奉獻!
    謝謝  回復  更多評論
      
    # re: Seam之初體驗 2009-03-30 17:00 | liulili
    你好,想請教你一個關于seam的問題:
    如何從數據庫中讀取數據,顯示在下拉列表中?
    下面是我寫的測試代碼,但是值是固定的,現在想從數據庫中讀取,該怎么做呢?
    public List <SelectItem> getSelectItemList() {
    List <SelectItem> selectItemList = new ArrayList<SelectItem>();
    selectItemList.add(new SelectItem("1", "Label1"));
    selectItemList.add(new SelectItem("2", "Label2"));
    return selectItemList;
    }  回復  更多評論
      
    # re: Seam之初體驗 2009-11-27 10:12 | AlanX
    寫的很好,好東西要分享,我把你的博客加到了我的主頁鏈接上面。我對seam很感興趣,希望你堅持寫下去  回復  更多評論
      
    # re: Seam之初體驗 2009-12-15 22:04 | dj861212
    樓主,加油

    誠心的說聲,謝謝您  回復  更多評論
      
    # re: Seam之初體驗 2010-02-08 11:54 | sgw
    Jboss5.0有個嚴重的問題,不能熱部署xhtml文件,因為jboss運行時都是執行tmp下面的文件,熱部署時發到deploy下面,而tmp下面還是服務啟動時候從deploy下拷過來的,每次要重啟seam的,要耗大量時間,實為雞肋啊!然而jboss5.1就解決這個問題了,但是要用jboss5.1又要下載最新的eclipse、jbossTools、seam,暈啊。。。。。  回復  更多評論
      
    主站蜘蛛池模板: 香蕉视频免费在线| 亚洲成a人片在线观看天堂无码| 国产无限免费观看黄网站| 国产极品粉嫩泬免费观看| 亚洲精品无码你懂的| 日韩精品视频免费网址| 亚洲日韩看片无码电影| 日韩免费无码一区二区视频| 亚洲精品无码久久久久秋霞| 日韩黄色免费观看| 处破女第一次亚洲18分钟| 免费A级毛片无码久久版| 思思久久99热免费精品6| 国产精品V亚洲精品V日韩精品| 一区二区三区在线免费| 国产成人亚洲精品影院 | 亚洲色精品VR一区区三区| 18勿入网站免费永久| 最新亚洲精品国偷自产在线| 免费观看的毛片手机视频| 日韩在线视频线视频免费网站| 在线观看亚洲精品福利片| 美女视频黄a视频全免费网站色窝 美女被cao网站免费看在线看 | 久操视频免费观看| 亚洲天堂一区在线| 午夜视频在线在免费| 青青草97国产精品免费观看| 中文字幕精品亚洲无线码一区应用| 国产线视频精品免费观看视频| 久久丫精品国产亚洲av| 久久久久久久综合日本亚洲 | 亚洲电影中文字幕| 免费在线观看的网站| 黄页网址大全免费观看12网站| 亚洲中文字幕日产乱码高清app| 99久久国产免费中文无字幕| 亚洲女女女同性video| 最新国产AV无码专区亚洲| 亚洲精品视频免费看| 自拍偷自拍亚洲精品播放| 亚洲第一AAAAA片|