安赫尔·伦纳德的书摘录,
<view tag>
:嵌套在<flow-definition>
标签中,表示代表流节点的JSF页面;它将显式 ID 关联到每个页面(Facelet)路径(此外,您可以通过其 ID 引用每个页面)。页面路径映射在<vdl-document>
标签中,嵌套在<view>
标签中。该标签的存在是可选的,但作为约定,至少存在<view>
指示起始节点(起始页)的标签,特别是如果您想设置默认节点之外的另一个起始节点,它由页面中的页面表示与流具有相同名称 (ID) 的流。此外,您可以使用可选<start-node>ID</start-node>
标签并指明<view>
映射自定义起始页的标记。或者,可以通过将标签的id属性的值设置为流ID,将封装标签的内容设置为自定义起始页的路径来指示流的起始节点。当您引用流 ID 时,JSF 将转到该页面并自动将您置于流中。
假设我有 4 个相对于webapp
目录的页面,如图所示:
index.xhtml
registration/registration.xhtml
registration/confirm.xhtml
done.xhtml
作者在以下位置建议此设置faces-config.xml
:
<flow-definition id="registration">
<view id="registration">
<vdl-document>/registration/registration.xhtml</vdl-document>
</view>
<flow-return id="taskFlowReturnIndex">
<from-outcome>/index</from-outcome>
</flow-return>
<flow-return id="taskFlowReturnDone">
<from-outcome>/done</from-outcome>
</flow-return>
</flow-definition>
我已经试验过了,并且确实知道,
<view id="registration">
<vdl-document>/registration/registration.xhtml</vdl-document>
</view>
是可选的,同样由同一作者提出。
这已经足够了(该id
属性与需要创建流的 JSF 视图具有相同的名称。)-
<flow-definition id="registration">
...
</flow-definition
id
此外,仅当属性 与 JSF 视图的名称完全匹配时才会创建流<flow-definition id="registration">
,即:
registration
.xhtml
重复同一提取物的一部分:
...至少存在
<view>
指示起始节点(起始页面)的标记,特别是如果您想要set another start node
除 之外default one
,它由流中的页面表示,流same name (ID)
为流。此外,您可以使用可选<start-node>ID</start-node>
标记并指示映射自定义起始页ID
的标记。<view>
用更简单的话来说,他建议像这样嵌套在同一个<flow-definition>
中,
<view id="confirm">
<vdl-document>/registration/confirm.xhtml</vdl-document>
</view>
<start-node>confirm</start-node>
但我看到从index.xhml
toconfirm.xhtml
不会true
返回
In flow ? #{null != facesContext.application.flowHandler.currentFlow}
至于何时从 导航index.xhtml
到confirm.xhtml
。
有什么建议么?