Model Struts2向导,作用域模型驱动

Model Struts2向导,作用域模型驱动,model,struts2,wizard,Model,Struts2,Wizard,我是Struts2新手,正在想出一种圆滑的方法来实现一个包含2个表单和4个bean的3页向导 在开始提问之前,让我以一种通用的方式提出我的用例,不涉及实体的任何细节,以保持简单。以下是我的用例: JSP1具有带有输入字段的Form1。 表格1提交给行动1。 Form1的字段值通过请求参数绑定填充到Action1中的Bean1。 Action1验证Bean1中的字段,如果验证失败,则在Form1字段和错误消息中显示JSP1,其中包含捕获的Bean1值。 若验证成功,Bean1将用于检索Bean2,

我是Struts2新手,正在想出一种圆滑的方法来实现一个包含2个表单和4个bean的3页向导

在开始提问之前,让我以一种通用的方式提出我的用例,不涉及实体的任何细节,以保持简单。以下是我的用例:

JSP1具有带有输入字段的Form1。 表格1提交给行动1。 Form1的字段值通过请求参数绑定填充到Action1中的Bean1。 Action1验证Bean1中的字段,如果验证失败,则在Form1字段和错误消息中显示JSP1,其中包含捕获的Bean1值。 若验证成功,Bean1将用于检索Bean2,结果将被定向到JSP2。 JSP2在Bean2中显示数据,在Form2中也显示其他输入字段。 表格2提交行动2 Form2的字段值通过请求参数绑定填充到Action2中的Bean3。 Action2验证Bean3中的字段,如果验证失败,则在Form2字段和错误消息以及Beans2数据中显示包含捕获的Bean3值的JSP2! 若验证成功,则使用Bean3填充Bean4,并将结果定向到JSP3。 JSP3在Bean4中显示数据 在发表这篇文章之前,我在《Struts2在行动中》和《Struts2 Web2.0项目实践》两本书中读到了关于这个主题的内容。我探讨了作用域拦截器、作用域模型驱动操作和使用通配符进行方法调用的单个操作的选项。我不希望以SpringWebFlow等形式添加额外的依赖项

我正在尝试使用会话范围内的ScopedModelDriven操作来实现向导。我的设计目标是每个动作都有定义良好的bean,而不是所有动作都有一个bean

在关于向导的问题之前,我有一个关于操作中bean作用域的基本问题。Action1在值堆栈中应该有Bean1,原因有二:1。提交时绑定Form1中的输入值;2.如果验证失败,则显示Form1值。Action1的值堆栈中还应该有Bean2,用于在JSP2中显示结果

操作是否应该始终具有字段,以便它们位于输入页面Bean1和结果页面BEAN2的ValueStack中?如果实现ScopedModelDriven,哪个bean将是我的模型

类似地,对于Action2,Bean2、Bean3和Bean4需要在ValueStack中

一个蛮力解决方案是合并Bean1、Bean2、Bean3和Bean4中的所有字段,并且整个向导只有一个Bean!我不想这样做,因为所有这些bean都有特定的功能

我认为我没有正确理解这个概念。应该有一种巧妙的方法来使用会话作用域中的这些原子bean实现这个向导


非常感谢您提供的任何帮助。

可能太晚了,但您可以通过

实现您的目标,我不确定这是一个简单的用例。也就是说,它似乎加载了实现。如果它让您感到高兴,那么您可以为每个操作中的每个bean创建一个getter/setter,您可以从视图访问嵌套对象。