jboss seam dvdstore示例說明三

 

6 頁面流pageflow的說明

說明:有狀態的session bean當中的某個方法調用頁面流的begin方法(需指定流程名),即進入一個頁面流程的開始,框架會自動找到類路徑下流程定義的<流程名>.jpdl.xml,根據<流程名>.jpdl.xml定義流程流轉的描述,進行流程頁面的跳轉。

 

注:整個頁面流轉過程是通過com.jboss.dvd.seam. EditCustomerAction類來協助實現的。


 

6.1 根據創建用戶功能newuser爲例

6.1.1 newuser頁面流定義說明圖

 

6.2.2 newuser頁面流定義文件

<?xml version="1.0"?>

<!—流程名與文件名相同<流程名>.jpdl.xml-->

<pageflow-definition

    xmlns="http://jboss.com/products/seam/pageflow"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation=

        "http://jboss.com/products/seam/pageflow http://jboss.com/products/seam/pageflow-2.1.xsd"

    name="newuser">

   

<!—流程開始節點指向account頁面節點-->

<start-state name="start">

<!—流程指向標籤-->

        <transition to="account"/>

    </start-state>

   

<!—流程account節點基於JSF由組件化後顯示頁面-->

    <page name="account" view-id="/newuser/account.xhtml">

        <redirect/>

    <!—操作完成後轉入下一頁面節點-->

        <transition name="next" to="checkPassword" />

    </page>

 

<!--判斷節點,調用類isValidNamePassword方法,返回布爾值,判斷節點流轉走向-->

    <decision name="checkPassword" expression="#{editCustomer.validNamePassword}">

        <transition name="true" to="contact"/>

        <transition name="false" to="account">

            <!-- <action name="#{editCustomer.warnPassword}" /> action is never triggered -->

        </transition>

    </decision>

 

  <!—頁面節點有會話時顯示view-id指定頁面並指向next,無會話時顯示no-conversation-view-id頁面並指向prev,會自動判斷節點流轉走向-->

    <page name="contact" view-id="/newuser/contact.xhtml"

          no-conversation-view-id="/newuser/account.xhtml">

        <redirect/>

        <transition name="prev" to="account"/>

        <transition name="next" to="card"/>

    </page>

 

  <!—頁面節點有會話時顯示view-id指定頁面並指向next,無會話時顯示no-conversation-view-id頁面並指向prev,會自動判斷節點流轉走向-->

    <page name="card" view-id="/newuser/card.xhtml"

          no-conversation-view-id="/newuser/account.xhtml">

        <redirect/>

        <transition name="prev" to="contact"/>

        <transition name="next" to="complete">

           <!—調用會話bean當中的saveUser方法-->

            <action expression="#{editCustomer.saveUser}"/>

        </transition>

    </page>

   

  <!—頁面節點有會話時顯示view-id指定頁面並指向next,無會話時顯示no-conversation-view-id頁面並指向prev,會自動判斷節點流轉走向-->

    <page name="complete" view-id="/newuser/complete.xhtml"

          no-conversation-view-id="/newuser/account.xhtml">

        <end-conversation/>

        <redirect/>

    </page>

   

</pageflow-definition>

 

發佈了88 篇原創文章 · 獲贊 0 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章