1

安赫尔·伦纳德的书摘录,

<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.xhmltoconfirm.xhtml不会true返回

In flow ? #{null != facesContext.application.flowHandler.currentFlow}

至于何时从 导航index.xhtmlconfirm.xhtml

有什么建议么?

4

0 回答 0