【问题标题】:Struts 1 or Struts 2 . Which one is advisable for web application development?Struts 1 或 Struts 2。哪一种适用于 Web 应用程序开发?
【发布时间】:2013-09-12 20:39:10
【问题描述】:

对于为我的新 Web 应用程序开发任务选择 Struts 1 或 Struts 2,我有点困惑。有人可以从架构的角度建议我应该使用哪个框架进行开发吗?在进行应用程序开发之前,选择 struts 版本应该注意什么? 任何帮助将不胜感激。

【问题讨论】:

  • Amit:永远不要再考虑 Struts1。它更复杂,功能更弱,而且已经死了。你的问题应该是: Struts 2JSF 2Spring MVC 或者更奇特的东西。

标签: struts2 struts1


【解决方案1】:

嗨,我更喜欢 struts 2,因为,

Struts 1.x

  1. 在 struts 1.x 中,前端控制器是 ActionServlet
  2. 在 struts 1.x 中,我们有 RequestProcessor
  3. 在 struts 1.x 中,我们有多个标签库,如 html、logic、bean..etc
  4. 在 struts 1.x 中,配置名称可以是 [任何名称].xml,我们通常放在 web-inf 文件夹中
  5. 在 struts 1.x 中,我们分别有 form beansAction 类
  6. 在 struts 1.x 中,Action 类是单吨类,因此 Action 类对象不是线程安全的,作为程序员,我们需要通过应用同步使其成为线程安全的李>
  7. 在 struts 1.x 中,我们只有 jsp 作为视图技术

Struts 2.X

  1. 在 2.x 中,前端控制器是 FilterDispatcher
  2. 在 2.x 中,我们使用 Interceptors 而不是 RequestProcessor
  3. 在 2.x 中,我们没有多个库,而是有包含所有标签的单个库
  4. 在 2.x 中,配置文件只能是 struts.xml,并且必须在 classes 文件夹中
  5. 在 2.x 形式的 bean 中,Action 类仅作为 Action 类组合给出,当然如果需要我们也可以单独使用
  6. 在 2.x 中,会为每个请求创建一个 Action 类对象,因此默认情况下它是线程安全的,所以我们这里不需要关心安全问题
  7. 在 2.x 中,我们支持多种视图技术,例如 velocity、Freemarker、jasper 报告、jsp

【讨论】:

  • 我不认为当你即将开始一个项目时应该有关于偏好的问题。我看不出有任何理由使用不再受支持的东西,而且我还有很多其他不错的选择
  • @UmeshAwasthi 不过,我喜欢这个答案,+1。对于那些在不关心 EOL(啊……)的情况下仍然可以选择 S1 并认为 S2“更难”的人可能会很有用,但事实并非如此。
【解决方案2】:

既然你提到它将成为一个新的网络应用程序,那就选择 Struts2。Struts1 已经在EOL 中,这意味着不会再单独支持 Struts1。

另外,Struts2 是一个新的且非常灵活的框架,将为您提供更多的控制权。这里是

  1. 选择最新版本的 Struts2 开始使用 (2.3.15.1)
  2. 如果您打算在 Spring 中编写服务层,您可以使用 Struts2-spring 插件让 spring DI 为您管理 struts2 组件。
  3. 由于您似乎是 Struts2 的新手,我建议您特别注意 OGNL,它是 struts2 中的核心构建块,您将在 UI 的标签中大量使用它。
  4. Struts2 具有非常灵活的可插入架构,让您可以创建以及使用许多插件,从而节省您从一开始就构建功能的时间。

希望这可能对您有所帮助。此外,您还可以查看并查看其他 MVC 框架

【讨论】:

    【解决方案3】:

    我也更喜欢使用 Struts2 本身而不是 Struts1,因为 Struts1 已经过时了,它的 EOL 已于 2013 年 9 月 1 日宣布,消息是“Struts 1.x Web 框架已达到其生命周期,不再正式支持的。” [来源:-wikipedia.org]

    所以最好使用 Struts2[我一直在使用版本:-2.3.1.1,因为我在使用 2.3.16 版本时遇到了一些“调度程序错误”(包中的 jar 文件彼此不兼容)问题]

    希望这可能会有所帮助。

    【讨论】:

      【解决方案4】:

      我也遇到过和你类似的困境,但我没有选择 Struts,而是在考虑之后选择了Tapestry

      它的一些很棒的功能是

      • 作为 POJO 的页面
      • 非常好的依赖注入
      • 可扩展
      • 使用lots of examples 轻松学习
      • 更多...

      【讨论】:

        猜你喜欢
        • 2011-01-27
        • 2012-03-23
        • 2015-06-30
        • 1970-01-01
        • 1970-01-01
        • 2011-08-17
        • 1970-01-01
        • 2020-12-07
        • 1970-01-01
        相关资源
        最近更新 更多