假设我有以下结构:
pageA.xhtml - 在这里我们可以选择在pageB和pageC中需要但在pageE中不需要的项目。
pageB.xhtml - 这里我们使用从pageA中选择的 Item 。我们在这个页面上还有一个选择框和一些按钮。当从 selectBox 中选择某些东西时,一些按钮将被停用,并且可以显示一些文本。(刷新此页面时,我们再次需要相同的状态)。pageB 包括 pageD列出了一些东西。现在我们可以导航到pageC。我们还创建了一些仅与pageC相关但与其他页面无关的对象。
pageC.xhtml - 这里我们从pageB获取对象,根据一些用户输入我们修改它,当我们按下应用时,我们回到pageB,它显示我们的更改。从pageB我们可以按保存,这将保存更改,并且pageD(包含在pageB中)将被更新。
pageD.xhtml - 只是列出一些东西。(仅包含在pageB 中)
- pageE.xhtml - 此页面将开始完全不同的内容,不需要来自pageA的输入,但您可以直接导航到pageC。在这种情况下pageC必须隐藏一些东西。
我希望这个例子有点清楚。实际上我只是为了让我的问题更清楚一点:我想知道在不同页面之间传递数据并保存实际状态的最佳实践是什么(回来时也有相同的状态)。
以及如何重置/清除某些页面中需要但不同页面中不需要的数据。例如,一些数据将需要几个页面,但一些仅在嵌套页面内(在最佳世界中,嵌套页面内的数据应在离开时清除)
当然,我可以将我需要的东西保存到会话中,但是当我不再需要它们时,我必须小心再次删除这些东西。JSF 和 CDI 支持对话。但这里的问题是不可能进行嵌套对话。当然,我也可以使用请求参数传递所有内容.. 但在这种情况下,如果我的页面中有 ajax 请求,我必须小心(我想我必须始终发送所有参数)。
我将 JSF 2.0 与 CDI 一起使用。任何答案将不胜感激。可悲的是我无法提供任何代码示例..所以我希望我能够足够清楚地表达我的自我。
问候库库达斯