要構建Beehive/JSF應用程序,首先要啟動Page Flow,然后添加對JSF的支持。起點是從基本的支持NetUI(Beehive中包含Page Flow的組件)的項目開始。根據指導構建基本的支持NetUI的Web應用程序。在本文中,我們暫且稱之為“jsf-beehive”,可以在 http://localhost:8080/jsf-beehive 上獲得。
接下來,安裝并配置JSF。Page Flow可以使用任何與javaServer Faces 1.1兼容的實現,并針對兩種主流實現進行了測試:Apache MyFaces和JSF Reference Implementation。根據下面的指導在新的Web應用程序中安裝JSF:MyFaces v1.0.9及更高版本,JSF Reference Implementation v1.1_01,或者其他實現。之后,可以使用WEB-INF/faces-config.xml中的一個簡單入口啟動Page Flow集成,入口在<application>標簽之下,<navigation-rule>標簽之上:
<factory> <application-factory> org.apache.beehive.netui.pageflow.faces.PageFlowApplicationFactory </application-factory></factory>
添加了這些就為頁面流提供了一個機會,使其可以提供自己的JSF框架對象版本來定制其行為。通常來說,只有在使用頁面流功能的時候,JSF行為才會被修改;JSF的基本行為不會改變。
JSF中頁面流的最基本用處是引發(調用)來自JSF頁面的動作。JSF頁面可以處理頁面內事件,而頁面流動作則是從一個頁面導航到另一頁面的方法。首先,在Web應用程序中創建一個名為“example”的目錄,在其中創建一個頁面流控制器類:
package example;import org.apache.beehive.netui.pageflow.Forward;import org.apache.beehive.netui.pageflow.PageFlowController;import org.apache.beehive.netui.pageflow.annotations.Jpf;@Jpf.Controller( simpleActions={ @Jpf.SimpleAction(name="begin", path="page1.faces") })public class ExampleController extends PageFlowController{ @Jpf.Action( forwards={ @Jpf.Forward(name="sUCcess", path="page2.faces") } ) public Forward goPage2() { Forward fwd = new Forward("success"); return fwd; }}
在這個頁面流中有兩個動作:跳轉到page1.faces的begin動作和跳轉到page2.faces的goPage2動作。將goPage2作為一個方法動作(而不是簡單動作)的原因是稍后將會對其進行擴充。
在構造頁面的時候,應當以.jsp為擴展名創建page1和page2;JSF servlet處理每個.faces請求,并最終跳轉到相關的JSP。所以,跳轉到page1.faces最終將顯示page1.jsp,如下:
<%@ taglib從JSF頁面引發一個動作很簡單:使用命令組件的action屬性中的動作名字就可以了。在上面的例子中,commandLink指向goPage2動作。使用頁面流集成,這意味著goPage2動作會在example.ExampleController中運行。
新聞熱點
疑難解答