Navigation JSF 1.2中的查询重新分级导航规则
如果我有以下导航规则:Navigation JSF 1.2中的查询重新分级导航规则,navigation,jsf-1.2,Navigation,Jsf 1.2,如果我有以下导航规则: <navigation-rule> <from-view-id>Mainview</from-view-id> <navigation-case> <from-outcome>outcome1</from-outcome> <to-view-id>view1</to-view-id> </navigation-c
<navigation-rule>
<from-view-id>Mainview</from-view-id>
<navigation-case>
<from-outcome>outcome1</from-outcome>
<to-view-id>view1</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>outcome2</from-outcome>
<to-view-id>view2</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-outcome>outcome3</from-outcome>
<to-view-id>view3</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
主视图
结果1
视图1
结果2
视图2
结果3
视图3
如果整个流程没有任何验证错误,那么一切都会正常工作。即:
步骤1)来自MainForm的方法返回结果1渲染视图1
步骤2)view1中的方法返回结果2渲染view2
步骤3)view2中的方法返回结果3渲染view3
请注意,上述规则中并没有重定向,这意味着浏览器将在浏览器窗口中显示Mainview
如果在上面的步骤2中,验证失败,则浏览器将在地址栏中显示view1,而不是显示view2
现在,对于下一个流(一旦验证成功),起点不是Mainview,而是view1,这意味着必须编写导航案例
带视图1
如何处理呢?我们是否需要编写另一套导航规则?或者像上面这样设计导航规则是完全错误的 查看,我们必须得出结论,每个
中只能有一个
标记
来自视图id:一个可选元素,包含完整的页面标识符(与页面上下文相关的相对路径)或以星号(*)通配符结尾的页面标识符前缀。如果使用通配符,则该规则适用于与通配符模式匹配的所有页面。要使全局规则适用于所有页面,请将此元素留空
由于此标记是可选的,您可以指定它或不指定它-注意,您还可以指定通配符视图id,因此导航案例涵盖与模式相关的每个视图id-但每个规则只能有一个。
因此,对于您的案例,您有以下选择:
- 创建新的导航规则以管理从
开始的导航案例view1
- 使用模式覆盖视图id,并使用通配符将其分组(命名第一页视图0):
看法* 结果1 视图1 结果2 视图2 结果3 视图3
- 只是不要从视图id分配
,而是让它对您实际所在的每个
都有效。当你对每个案例使用不同的结果时,你不会有问题视图id
<navigation-rule>
<from-view-id>view*</from-view-id>
<navigation-case>
<from-outcome>outcome1</from-outcome>
<to-view-id>view1</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>outcome2</from-outcome>
<to-view-id>view2</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-outcome>outcome3</from-outcome>
<to-view-id>view3</to-view-id>
<redirect/>
</navigation-case>