Java 使用jsf准备向导流

Java 使用jsf准备向导流,java,jsf,Java,Jsf,我正在尝试使用jsf1.2 sun RI+richfaces创建一个小向导。 用户在多个页面中设置输入数据,最后按finish键将数据插入数据库。 信息在带有“编辑”按钮的表格中显示为一行。 单击“编辑”后,数据将填充到所有页面中,用户可以再次编辑和保存数据。 此外,在来回导航时,数据必须保留在表单中。 目前,我已经通过使用多个会话作用域bean实现了这一点,这些bean通过在会话映射中查看其引用来访问彼此的数据,其中一些作为依赖项注入 我想知道是否有一种标准的方法/好的模式可以通过避免多个会话

我正在尝试使用jsf1.2 sun RI+richfaces创建一个小向导。 用户在多个页面中设置输入数据,最后按finish键将数据插入数据库。 信息在带有“编辑”按钮的表格中显示为一行。 单击“编辑”后,数据将填充到所有页面中,用户可以再次编辑和保存数据。 此外,在来回导航时,数据必须保留在表单中。 目前,我已经通过使用多个会话作用域bean实现了这一点,这些bean通过在会话映射中查看其引用来访问彼此的数据,其中一些作为依赖项注入

我想知道是否有一种标准的方法/好的模式可以通过避免多个会话范围bean和在会话映射中查找来做到这一点

如果有人能用类似的例子链接到任何博客/教程,那就太好了
非常感谢

您可以让它们成为单个会话范围bean的属性

public class Wizard {
    private Step1 step1 = new Step1();
    private Step2 step2 = new Step2();
    private Step3 step3 = new Step3();
    // ...
}
并按如下方式使用它

<h:form id="step1">
    <h:inputText id="input1" value="#{wizard.step1.input1}" />
    <h:inputText id="input2" value="#{wizard.step1.input2}" />
</h:form>

...

<h:form id="step2">
    <h:inputText id="input1" value="#{wizard.step2.input1}" />
    <h:inputText id="input2" value="#{wizard.step2.input2}" />
</h:form>

...

...
...

这样,您就可以从action方法中即时访问所有内容。

我建议您下载一个带有类似JSF组件的开源软件。这会让你更容易。它们还有一个向导: