2009-08-14 69 views
5

我最近添加了Struts 1.3到Tomcat的应用程序。这里是我的观察,Struts的好处是什么

  1. MVC。 Servlet/JSP对我来说很好,JSP是视图,servlet是控制器。由于我们的映射是非常静态的,我没有看到从XML文件获取映射的好处。
  2. Action Form。我可以看到行动形式的一些好处,但不是很大。
  3. 标签。我已经使用JSTL,并没有看到使用Struts标签的优势。

所以我在考虑删除Struts。任何人都可以想到我可能错过的其他好处?

+2

删除它。 Struts是遗留的。除非严格限制,否则没有人应该选择Struts来实现新的实现。 – SteveD 2009-08-14 07:11:39

+0

+1完全同意stevendick – 2009-08-14 07:46:11

+0

感谢您的回复。我已经决定删除​​它。 – 2009-08-16 00:17:05

回答

11

我个人更喜欢jsp/servlet,但理论上Struts有一些优点。 以下是我所知道的一些优点,您可能已经提到过它们,但是我认为如果我在这里列出所有这些优点会更好。

  1. 集中式文件配置。 Struts值/映射以XML或属性文件表示。这种松散的耦合意味着可以在不修改或重新编译Java代码的情况下进行许多更改,并且可以通过编辑单个文件进行批量更改。这种方法还可以让Java和Web开发人员专注于他们的特定任务(实现业务逻辑,向客户端提供某些值等),而无需了解整个系统布局。

  2. Form Beans。

  3. Bean Tags。 Struts提供了一组定制的JSP标签,可以让您轻松输出JavaBeans组件的属性。

  4. HTML标记。 Struts提供了一组定制JSP标签来创建与JavaBeans组件相关联的HTML表单。这个bean/form关联有两个有用的目的:

    • 它可以让你从Java对象获取初始表单字段值。
    • 它可让您重新显示带有部分或全部先前输入值的表单。
  5. 表单字段验证。 Struts有一个健壮的,可扩展的验证器,可以用来统一验证你的表单域。此验证可以在服务器上(使用Java)执行,也可以在服务器和客户端(使用JavaScript)执行。

  6. “管道代码”包含在Struts框架中。 例如,将HTTP请求参数映射到Java对象由Struts处理。你不必这样做。这使您可以更专注于域问题而不是构建基础结构。

  7. 好文档&很多书籍。 如果你不得不离开项目和/或其他人必须维护它,那么使用一个众所周知的和有据可查的框架将使这个工作变得更容易。自制的框架无法与此相匹配。

  8. 广泛的用户测试。 由于Struts被用于大量的Web应用程序,框架将被比许多单独编写的东西更多的眼睛看着。通常,但并非总是如此,这意味着您拥有的任何问题都会首先被其他人看到(并希望得到解决)。

3

庞大的知识库。 我同意这可能不像以前那样有效,但Struts已经在多年的许多项目中使用过。从可维护性的角度出发,使用众所周知的框架可以让其他人更容易地处理您的应用程序,并且还可以帮助您为未来构建自己的简历。现在大部分开发都是在基于组件的空间(如JSF,wicket,tapestry)或类似轨道的空间(如rails,grails,lift),但struts arcitechture仍在使用且有效。

你没有说如果你在公司环境中开发或者没有开发,对于一个个人项目来说,可维护性问题可能不是什么大问题。

如果决定支柱适合你的好,你也可以看看stripes,一个支柱状的框架,是基于同样的概念,但更简洁,当谈到与更合理的默认配置,更少的XML和支持用于注释。

3

我完全同意你关于Struts的观点 - 我个人认为它的时代已经来临。

因为表单bean只是添加了样板代码来编写,所以我在Struts v1(我认为它不是最新版本)中脱离了Struts。

从那时起,我所从事的大多数应用程序都使用Spring作为依赖注入框架,这使得Spring MVC成为自然选择 - 它很简单,直接且简单。

1

不仅适用于Struts。但要考虑使用框架的一些要点:

  • 标准化。
  • 为您最喜爱的IDE提供专用IDE或插件。
  • 便携性。例如,某人可以开发一个portlet,将现有的struts应用程序集成到门户服务器中。
  • 国际化。

对我来说最重要的:

  • 你不必担心在支柱代码的问题,只是升级。
  • 您可以将您的工作集中在业务逻辑中。
1

Struts是开放Source-- 大型社区---- 提供书籍的数量----- 证实了的框架---- 流行的框架----- 可用自2001-- - + ---- 上述特征...........

但使用支柱时UR,更好的选择是struts2的。

1

我认为你对删除Struts的感觉是一个合理且可以理解的反应。对于应用程序来说,Struts似乎并没有太大用处。