我开始使用 JSF Flows,在阅读了一些示例和规范之后,我开始使用它。
我正在使用目录中的打包流程方法,如规范的第 11.4.3.3 节中所述。它似乎更容易并且更符合自 JSF 2.0 以来已经采用的命名约定。
Bellow 是我当前的目录结构。流 id 是wizard。
我知道有一个通过调用返回节点来退出流程的概念。
您可以通过上图看到,我没有返回节点视图。它只是一个向导,有一堆可以来回导航的页面,其优点是维护了我的 ManagedBean 状态。
问题是,我可以导航到应用程序中的任何页面,而 JSF 仍然保持该流的状态。如果我返回到任何向导页面,所有信息仍然存在,这意味着 JSF 从未放弃流范围。
我的问题是:
- 如果我有一个“完成”命令按钮,我如何告诉 JSF 当用户单击该按钮时,它应该放弃当前的流范围?
- 更重要的是,如果我没有返回节点怎么办?如果用户导航到流目录之外的任何视图*,我如何告诉 JSF 放弃流状态?(通过“流”的概念,我认为这已经是标准行为)
*为了清楚起见,我的意思是另一个JSF 视图(我的应用程序中的另一个页面)。我知道如果用户触发对我的应用程序之外或 JSF 范围之外的页面的请求,它就无法执行任何操作。