9.2.2. Starting pageflows
We "start" a jPDL-based pageflow by specifying the name of the process definition with a
@Begin
, @BeginTask
or @StartTask
annotation:
@Begin(pageflow="numberguess") public void begin() { ... }
Alternatively, we can start a pageflow using
pages.xml
:
<page> <begin-conversation pageflow="numberguess"/> </page>
If we are beginning the pageflow during the
RENDER_RESPONSE
phase — during a @Factory
or @Create
method, for example — we consider ourselves already at the rendered page, and use a <start-page>
node as the first node in the pageflow, as in the example above.
But if the pageflow is begun as the result of an action listener invocation, the outcome of the action listener determines the first page to be rendered. In this case, we use a
<start-state>
as the first node in the pageflow, and declare a transition for each possible outcome:
<pageflow-definition name="viewEditDocument"> <start-state name="start"> <transition name="documentFound" to="displayDocument"/> <transition name="documentNotFound" to="notFound"/> </start-state> <page name="displayDocument" view-id="/document.jsp"> <transition name="edit" to="editDocument"/> <transition name="done" to="main"/> </page> ... <page name="notFound" view-id="/404.jsp"> <end-conversation/> </page> </pageflow-definition>