ICEfaces Note(4)
ICEfaces Note(4)
配置导航规则
按Navigation Model的解释,导航是一套规则,用于在点击按钮或超链接时,显示所选择的下一个页面。导航规则在应用程序配置源文件中进行定义。
每一个导航规则都规定了怎样从一个页面进入其它的页面集。
当导航规则选定后,从当前页要访问到哪一个下一页,取决于当组件被点击或者逻辑结果返回时调用的行为方法(action method)。
结果(outcome)可以是开发者选择的任何东东,下面列出了通常返回的一些结果:
-----------------------------------------------------------------------------------------------------------------------------------
Outcome Means
success Everything worked. Go on to the next page.
failure Something is wrong. Go on to an error page.
logon The user needs to log on first. Go on to the logon page.
on results The search did not find anything. Go to the search page again.
-----------------------------------------------------------------------------------------------------------------------------------
下面是匹配用户名和密码的例子:
<from-view-id>/logon.jsp</from-view-id>
<navigation-case>
<from-action>#{LogonForm.logon}</from-action>
<from-outcome>success</from-outcome>
<to-view-id>/storefront.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-action>#{LogonForm.logon}</from-action>
<from-outcome>failure</from-outcome>
<to-view-id>/logon.jsp</to-view-id>
</navigation-case>
</navigation-rule>
导航规则定义了logon.jsp可能导航的页面。每一个navigation-case元素定义了logon.jsp的一种导航可能。第一个navigation-case元素说明如果LogonForm.logon返回的结果为success,则访问storefront.jsp;第二个navigation-case元素说明如果LogonForm.logon返回为failure,则返回logon.jsp。
下面再看另一个例子:
<from-view-id>/catalog.jsp</from-view-id>
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>/bookcashier.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>out of stock</from-outcome>
<from-action>#{catalog.buy}</from-action>
<to-view-id>/outofstock.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>error</from-outcome>
<to-view-id>/error.jsp</to-view-id>
</navigation-case>
</navigation-rule>
每一个导航规则元素和经可选的from-view-id元素定义的组件树识别符相一致。
导航规则由可选的from-outcome元素和from-action元素来定义。from-outcome元素定义了一个逻辑结果,from-action元素定义了表达式绑定的一个方法来引用返回一个字符串的行为方法,这个字符串是逻辑结果。
navigation-case元素以下面的情况来检查结果和表达式绑定方法:
1)指定from-outcome和from-action两者的值。
2)只指定from-outcome的值。这个值必须匹配经UI命令组件的action属性或UI命令组件引用的方法返回的结果。
3)只指定from-action的值。这个值必须匹配经组件标签指定的action表达式。