Struts的好处是什么?

5

我最近在Tomcat上的应用程序中添加了Struts 1.3。以下是我的观察:

  1. MVC。对我来说,Servlet/JSP已经可以很好地完成这项工作,其中JSP是视图,Servlet是控制器。由于我们的映射非常静态,因此我不认为从XML文件中获取映射有任何好处。
  2. Action表单。我可以看到一些Action表单的好处,但并不是很大。
  3. 标签。我已经使用JSTL,并不认为使用Struts标签有任何优势。

因此,我正在考虑删除Struts。还有其他任何我可能错过的好处吗?


2
删除它。Struts已经过时了。除非受到严重限制,否则不应该选择Struts进行新的实现。 - SteveD
完全同意stevendick的观点。 - Peter Thomas
感谢所有的回复。我已经决定将其删除。 - ZZ Coder
1
出于好奇,为什么是1.3而不是2+? - Cherian
6个回答

11
个人而言,我更喜欢使用JSP/Servlet技术,但从理论上讲,Struts有一些优势。以下是我知道的一些优点,也许你已经提到了它们,但我认为在这里列出所有的优点会更好。

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

  2. 表单Bean。

  3. Bean标签。 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多年来已被用于许多项目中。从可维护性的角度来看,使用一个众所周知的框架可以使其他人更容易地处理您的应用程序,并帮助建立您未来的个人简历。现在大多数开发都是在组件化空间(如JSFwickettapestry)或类似Rails的空间(如railsgrailslift)进行的,但Struts架构仍然在使用和有效。

您没有说您是否在公司环境中开发,对于个人项目来说,可维护性问题可能并不是那么重要。

如果你决定使用Struts,你也可以看看stripes,这是一个类似于Struts的框架,基于相同的概念,但在配置方面更少冗长,有更合理的默认值,更少的XML和对注释的支持。

3

我完全同意你对Struts的看法 - 我个人认为它的时间已经过去了。

在v1中,我放弃了Struts(我相信与最新版本完全不同),因为表单bean只是增加了样板代码。

自那以后,我参与的大多数应用程序都使用Spring作为依赖注入框架,这使得Spring MVC成为自然选择 - 它简单、直截了当且最小化。


1

不仅适用于Struts。但是使用框架需要考虑以下几点:

  • 标准化。
  • 为您喜欢的IDE提供专业插件或特定的IDE。
  • 可移植性。例如,有人可以开发一个portlet来将现有的struts应用程序集成到门户服务器中。
  • 国际化。

对我来说最重要的是:

  • 您不必担心struts代码问题,只需升级即可。
  • 您可以专注于业务逻辑。

1

Struts 是一款开源框架-- 拥有庞大的社区支持-- 有许多相关的书籍可供参考-- 是一款经过验证的框架-- 备受欢迎-- 自2001年起就已经推出-- +---- 以上所述的特点...........

但当您使用 Struts 时,更好的选择是 Struts2。


1

我认为你对移除Struts的感觉是一个明智而可以理解的反应。Struts似乎对应用程序帮助不大。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接