程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> JBossSeam學習系列之三:第一個例子

JBossSeam學習系列之三:第一個例子

編輯:關於JAVA

看了Seam的例子,也看了Seam的簡介,禁不住手癢,還是先做一個例子吧,遵照《seam_reference》第三章中的指導,使用JBossTool生成了自己的第一個例子,過程如下:

1、生成Sem web項目

2、輸入項目的相關信息,如下圖:

注意,如果是第一次使用Eclipse,需要配置Target Runtime和Target Server。

3、然後一路next,到最後一步時,如果是第一次使用,也要注意配置Seam Runtime和Connection Profile,如下圖。最後點擊finish按鈕,即可創建Seam項目。

4、生成項目後,在Eclipse中共出現了四個項目,如下:

seamfirst (web項目)

seamfirst-ear (ear項目,集成web和ejb)

seamfirst-jar (ejb項目)

seamfirst-test (測試項目,進行單元測試)

此時運行JBossServer服務器,訪問http://localhost:8080/seamfirst鏈接,出現如下圖頁面,此時Seam幫我們生成了一個框架,包含了基本的登錄和退出功能,還有一個首頁。

5、繼續!使用Seam生成單表的CRUD操作。本步驟前提,有一個mysql數據庫,數據庫中有一個Customer表,該表有ID(int類型)、customername(varchar2類型)、customerdesc(varchar2類型)、createdate(date類型)、email(varchar2類型)五個字段。在seamfirst項目上點擊右鍵,選擇Seam Generate Entities菜單,彈出界面如下圖:

單擊finish按鈕後,再運行JBoss Server服務器,訪問http://localhost:8080/seamfirst,發覺菜單欄上多了一個Customer List菜單,單擊此鏈接,即可進行Customer的添加、刪除、修改、查詢操作,雖然生成的界面不是很好看,也不是很符合我自己的操作習慣,但是功能倒是完備。

以後若是修改了Seam提供的代碼自動生成的模板,然後再使用該功能,想必生成的頁面就符合自己的項目要求了,記下一筆,先不管它。

生成的代碼分析:

生成的代碼主要有兩部分,一部分為Java代碼,一部分為頁面代碼。

Java代碼包括如下三個類:

Customer.java ---- 實體類,映射到數據庫中的Customer表。

CustomerHome.java ---- SessionBean,提供了Customer類的創建、更新、刪除功能。繼承了org.jboss.seam.framework.EntityHome類,EntityHome類中提供創建、更新、刪除等基本功能。

CustomerList.java ---- SessionBean,提供了Customer類的查詢功能。繼承了org.jboss.seam.framework.EntityQuery類,EntityQuery類中提供了查詢功能。

CustomerHome和CustomerList類中都使用了@Name annotation,這樣在頁面中就可以直接訪問Session Bean中的方法了,達到了Seam將表現層和業務層直接融合的目標。

頁面代碼包括如下文件:

Customer.xhtml

Customer.page.xml

CustomerEdit.xhtml

CustomerEdit.page.xml

CustomerList.xhtml

CustomerList.page.xml

剛開始看這段代碼時,困惑我的有兩個地方

一個是CustomerList.xhtml中rich:dataTable的value為"#{customerList.resultList}",customerList我明白指的是CustomerList SessionBean,但是我看遍了其代碼,也沒有發現有resultList屬性,後來仔細一看,才發覺該屬性在其父類EntityQuery中。

另一個是每一個xhtml文件都有一個對應的page.xml文件,想了半天也沒整明白這是怎麼回事,後來只好繼續看Seam in Action的第三章,看著看著終於明白了,原來這是Seam對JSF的一個擴展,增強了JSF的功能,具體含義後面詳細解釋。

至此第一個使用JBossTools生成的Seam例子完成了,好像很簡單 :-)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved