Jakarta ee 向导/问卷类型应用程序的通用J2EE体系结构

Jakarta ee 向导/问卷类型应用程序的通用J2EE体系结构,jakarta-ee,jms,Jakarta Ee,Jms,如果您正在设计一个应用程序,用户必须在一个页面上回答多个问题,并且有几十个页面。您使用哪些Java库和工具,以及是否有其他建议帮助您编写这样一个站点 要求: 用户必须能够随时退出应用程序并返回 用户必须能够根据前面的问题从头到尾导航 可能的注意事项和潜在问题: -使用Struts2+或其他一些j2ee框架 -弹簧芯的可能用途 -hibernate的用户 -Oracle后端 是否在每个页面上保存到数据库 可选(使用JMS)对已完成的页面进行排队 由于以下要求,需要某种临时数据存储(如暂存表)

如果您正在设计一个应用程序,用户必须在一个页面上回答多个问题,并且有几十个页面。您使用哪些Java库和工具,以及是否有其他建议帮助您编写这样一个站点

要求:

  • 用户必须能够随时退出应用程序并返回
  • 用户必须能够根据前面的问题从头到尾导航
可能的注意事项和潜在问题: -使用Struts2+或其他一些j2ee框架 -弹簧芯的可能用途 -hibernate的用户 -Oracle后端

  • 是否在每个页面上保存到数据库

  • 可选(使用JMS)对已完成的页面进行排队


由于以下要求,需要某种临时数据存储(如暂存表)来捕获用户活动状态-

用户必须能够退出应用程序 随时回来

您可以在
HTTPSession
中的相关值对象(例如,名为
WizardData
)中捕获所有用户操作(因为您使用的是web层)。无需在每页上保存数据。相反,在“下一个”或“上一个”会话中更新
向导数据。用户完成向导活动后,将信息保存到数据库表(j2ee/spring/hibernate)

但是,如果用户没有完成活动(注销或导航离开),您可以在会话中保留
向导数据
,直到用户注销或会话无效。在这两种情况下,将
向导数据
持久化到一个以userid为键的临时表中。因此,您可以在用户重新登录或登录并重新启动向导后检索向导阶段

依我看,要实现这样的功能,使用JMS将是一种过度的杀戮。当您添加额外的层和复杂性时,您不会获得任何实现的便利。

擅长于这类事情,我会在这种情况下使用它,因为我已经将它用于其他目的。如果你以前没有用过它,它可能会让我觉得有点重,这是你唯一(直接)使用它的方法

webflow中的“表单”对象可以包含来自多个表单的数据,这些表单被拆分为多个页面,每个页面只填充整个对象的一部分

要在任何时候退出并返回,您必须在每个页面/转换中持久化表单对象。我倾向于将其保存在与完成表单相同的表中,但有一列表示complete=false和最后一个活动时间戳