ui:composition元素:UI組件,使用這個元素做根元素表示這個頁面并不是一個完整的頁面,而是需要一個template頁面作為摸版的內容頁面。
xmlns:根元素命名空間。就是那些不帶前綴標簽比如<div>
xmlns:s:Seam元素的命名空間。
template:摸版頁面
摸版頁面:
ui:include:與<jsp:include>差不多。但這里沒有引入jsp命名空間。所以使用<ui:include>。
<ui:insert/>:這個是一個template頁面。這個標簽表示插入一個名為body的內容塊。在內容頁面--home.xhtml--與此對應的是:<ui:define name="body"></ui:define>。在Seam-gen生成的頁面中幾乎所有的頁面都將template指向template.xhtml。還有另一種使用摸板的方式。比如layout/edit.xhtml。
這里依然是使用<ui:insert />作為內容頁面的插入塊。這里有兩塊<ui:insert />第一塊是有name屬性的,第二塊則是沒有name屬性的。如果沒有name屬性,表示在插入塊中沒有放在<ui:defind/》里的東西都放在沒有name的插入塊中。。。比如
這里<ui:defind name="label">這就是定義那個有名字的插入塊。而接下來的<h:inputText ... />則是放在了下面沒有名字的<ui:insert />中。上面的代碼也展示了使用摸板的另一種方式。使用<s:decorate/>使用摸板塊,摸板頁面的根需要是一個<ui:composition>元素。s:decorate是一個seam元素。必須在seam的管理的頁面中使用。
其他:
jsf中的form是不需要action的。比如<h:form id="login">
標簽的rendered屬性表示在什么情況下顯示。html標簽沒有rendered屬性,比如div標簽沒有rendered。
其他的jsf標簽我們可以通過學習jsf學習。因為jsf標簽,richFaces標簽,faceslet標簽太多了。這里就不一一介紹了。。。。大家有什么好的資料也麻煩告訴我哦。
然后Next -> Next -> Next -> Next到配置數據庫連接的位置
選擇 new 一個。進入配置界面。我現在用的是sqlserver。以下以sqlserver為例:
選擇要配置的數據庫類型后填寫Name;然后Next
配置驅動,New一個
配置Jar List后就FINISH了。
然后后面的步驟就簡單了。直接可以finish。這樣會新建兩個工程。一個是主工程。一個是測試用的。
JBoss Tools已經幫你部署到了你選擇的Jboos服務器里。
現在直接運行JBoss就OK了。如果你配置了Jboos Server。在工具欄中有個這樣的東西第一個是運行Jboss服務器,第二個是用Debug模式運行,第三個是停止。直接點綠色的箭頭。啟動時可能會報一個錯誤:java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]對象名 'information_schema.system_sequences' 無效。這是因為Seam啟動時需要這個東西。單數據庫里卻沒有。。不要以為information_schema是庫名,而system_sequences是表名哦。因為就算你在數據庫里建了這樣一個庫和表也是沒用的。解決辦法是修改src/module/META-INF/下的persistence.xml。將里面的hibernate.hbm2ddl.auto設置為create-update。讓seam自己去創建對象。但又不自動刪除。不能用create-drop。因為如果用create-drop在服務器關閉時Seam會自動將它刪除。下次重新創建。而這也會秧及你的數據表。。。只要用create-update啟動一次即可。也可以只create,后面每次就可以用update了。其實可以不換成只update。用create-update也挺好。因為如果數據庫中存在該數據表。Seam就不會再重新create
如果數據庫中的表與將要創建的表結構一致。Seam就不會更新表結構
重新啟動服務器。