【问题标题】:Can Spring Webflow eliminate the need for controller classes?Spring Webflow 可以消除对控制器类的需求吗?
【发布时间】:2010-10-31 01:57:22
【问题描述】:

对于一个相对简单的应用程序,是否可以使用 Webflow 来减少创建表单控制器的需要?好吧,当然可以,但我想我要问的是:如果我的目标是减少我编写的代码量,我可以并且应该为所有控制器/视图逻辑使用 Webflow 编写整个应用程序?

我在(糟糕的)Webflow 文档中苦苦挣扎,想知道这是否值得,或者我是否应该坚持使用常规 MVC。

【问题讨论】:

    标签: spring spring-mvc spring-webflow-2


    【解决方案1】:

    Web Flow 的用例是解决涉及跨多页导航(页面流或向导)的控制器逻辑的问题。如果您不必将表单拆分到多个页面(或需要多个小表单来参与单个事务),您可能不需要 Pageflow。

    但是,大多数应用程序确实需要这个。除了简单的 CRUD 之外,任何东西都会受益。

    页面流为数据提供自然缓存,并且可以解决使用后退按钮导航和多个框架/选项卡时所涉及的问题。

    如果您正在考虑如何存储需要比单个请求更长时间的数据(常见但被误导的观点是存储在 HttpSession 中),那么您肯定会从 Web Flow 中获得一些东西。如果您没有做类似的事情并在请求范围内处理所有内容,那么您很可能不需要 Web Flow。

    更新: Web Flow 可以消除对专业 控制器类的需求,以完成沿着预定义工作流的页面转换/表单更新路径。如果您不需要这样做,您只需使用 MVC 就可以为自己节省大量配置/复杂性。

    【讨论】:

    • 好的,但是一切都应该是流程的一部分吗?假设我有一个只显示一些记录的屏幕。用户可以单击一条记录并被带到一个他可以更新它的屏幕......也许视图中的每条记录都只是有一个指向更新视图的链接并传递记录ID。我可以编写一个控制器来设置该初始视图,或者我可以有一个具有一种状态的“流”。我不明白这里的东西......
    • 在我的理解中,你应该对 Web Flow 要么全无,要么全无。在您描述的场景中,您不需要任何专门的控制器。但是要按照最初的措辞回答您的问题,是的,这是 Web Flow 的目标 - 消除对控制器变得专门处理工作流类型交互的需要。
    【解决方案2】:

    SpringMVC 和 Spring WebFlow 可以在适当的情况下一起使用 - 这没有什么奇怪的。

    如果您有一个简单的用例,并且您认为可以使用 SpringMVC 轻松实现它,那么这可能是正确的选择。

    注意:您也可以在 WebFlow 中实现这一点,这既不好也不坏。

    如果您有复杂的向导逻辑和状态管理要求,那么 WebFlow 非常棒,而且您还可以免费获得许多其他功能,例如事务和持久性支持(第 2 版)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-07
      • 1970-01-01
      • 2016-09-04
      • 1970-01-01
      相关资源
      最近更新 更多