Java Reference
In-Depth Information
This rule states that when a command component (such as an
h:commandButton
or
an
h:commandLink
) on
greeting.xhtml
is activated, the application will navigate
from the
greeting.xhtml
page to the
response.xhtml
page if the outcome refer-
enced by the button component's tag is
success
. Here is the
h:commandButton
tag
from
greeting.xhtml
that specifies a logical outcome of success:
<h:commandButton id="submit" action="success"
value="Submit" />
As the example demonstrates, each
navigation-rule
element defines how to get
from one page (specified in the
from-view-id
element) to the other pages of the
application. The
navigation-rule
elements can contain any number of
navigation-case
elements, each of which defines the page to open next (defined by
to-view-id
) based on a logical outcome (defined by
from-outcome
).
In more complicated applications, the logical outcome can also come from the return value
of an
action method
in a managed bean. This method performs some processing to de-
termine the outcome. For example, the method can check whether the password the user
entered on the page matches the one on file. If it does, the method might return
success
;
otherwise, it might return
failure
. An outcome of
failure
might result in the logon
page being reloaded. An outcome of
success
might cause the page displaying the user's
credit card activity to open. If you want the outcome to be returned by a method on a bean,
you must refer to the method using a method expression, with the
action
attribute, as
shown by this example:
<h:commandButton id="submit"
action="#{userNumberBean.getOrderStatus}" value="Submit" />
When the user clicks the button represented by this tag, the corresponding component
generates an action event. This event is handled by the default
javax.faces.event.ActionListener
instance, which calls the action method
referenced by the component that triggered the event. The action method returns a logical
outcome to the action listener.
The listener passes the logical outcome and a reference to the action method that produced
the outcome to the default
javax.faces.application.NavigationHandler
.
The
NavigationHandler
selects the page to display next by matching the outcome or
the action method reference against the navigation rules in the application configuration
resource file by the following process: