首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何为不同的jsp页构造模型、bean、控制器和视图,但却驻留在数据库中的一个表中?

如何为不同的jsp页构造模型、bean、控制器和视图,但却驻留在数据库中的一个表中?
EN

Stack Overflow用户
提问于 2013-04-12 17:48:51
回答 2查看 180关注 0票数 1

这是我们正在使用SpringMVC2.5、jsp、Java7、Ajax和HTML5进行的一个新项目,就我而言,将有7-10个jsp页面,其中包含一个表单each.These页面是连续的。也就是说,第一页必须成功地传递到第二页,第二页传递到第三页,以此类推。

为了持久化数据,必须到达最后一个页面(在成功地传递了其余信息之后)并确认信息是正确的。一旦用户确认,我必须持久化存储在bean或会话中的所有数据(全部或无)。不应该持久化不完整的数据。

我是Spring的新手,但我得到了这个想法,并使用一个控制器实现了页面流。

我的问题是,是否需要一个模型类或bean来存储所有数据,或者使用会话来存储每个页面的信息,并将其保存在会话中直到它被持久化?

或者最好有一个模型类,但是多个控制器/bean来控制来自每个页面的数据流。你推荐哪一种?是否有任何设计模式已经实现来回答我的问题?如果你有更好的想法,请随意讨论你的想法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-12 21:01:23

正如您已经提到的,有两种方法。使用哪一个取决于数据化和其他需求,例如,用户是否可以稍后返回并继续从他离开的地方返回。模型和控制器不需要只是一个。它可以进行适当的设计。

( a) 存储会话中每个屏幕的数据:

  • 优点:不必要的数据不会持久化到db。当用户在屏幕上来回遍历时,可以在会话中操作数据,因此速度更快。
  • 这种方法的缺点:会话中过多的信息会导致内存问题。如果需要此功能,在会话期间,failover.The用户可能无法重新登录并继续从用户离开的位置继续登录,这可能没有多大帮助。

( b) 在用户移动时保存每个屏幕数据:

  • 优点:会话更轻,所以会话中只存储了最少的相关信息。用户可以从用户离开的地方重新登录并继续。可以使用单独的inprogress db表来存储这些信息,并且只有在最终提交时,才能将数据插入/更新到实际的表中,否则db将包含大量未提交的数据。通过这种方式,可以定期清除inprogress。
  • 缺点:需要对每个屏幕进行db调用,以便持久化和检索,即使用户可能不提交。
票数 3
EN

Stack Overflow用户

发布于 2013-04-12 20:46:27

对于使用HTTP会话存储表单的状态,您是正确的。

还是使用会话来存储每个页面的信息,并将其保存在会话中直到它被持久化?

由于这一要求:

不应持久化不完整的数据。

至于

是否需要一个模型类或bean来存储所有数据?

你可以在你认为合适的时候给它建模。可能是表示流程的模型,然后是每个页面的对象。取决于数据是如何在页面之间分割的。

尽管如上所述,您可能可以使用WebFlow来实现这一点。然而,这最终只是Spring之上的一个轻量级框架。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15977756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档