我最近在Tomcat上的应用程序中添加了Struts 1.3。以下是我的观察:
- MVC。对我来说,Servlet/JSP已经可以很好地完成这项工作,其中JSP是视图,Servlet是控制器。由于我们的映射非常静态,因此我不认为从XML文件中获取映射有任何好处。
- Action表单。我可以看到一些Action表单的好处,但并不是很大。
- 标签。我已经使用JSTL,并不认为使用Struts标签有任何优势。
因此,我正在考虑删除Struts。还有其他任何我可能错过的好处吗?
我最近在Tomcat上的应用程序中添加了Struts 1.3。以下是我的观察:
因此,我正在考虑删除Struts。还有其他任何我可能错过的好处吗?
集中式基于文件的配置。 Struts的值/映射都用XML或属性文件表示。这种松散耦合意味着可以进行许多修改而无需修改或重新编译Java代码,并且可以通过编辑单个文件进行整体更改。这种方法还可以使Java和Web开发人员专注于他们的具体任务(实现业务逻辑、向客户端呈现某些值等),而无需了解整个系统布局。
表单Bean。
Bean标签。 Struts提供了一组自定义JSP标签,可让您轻松输出JavaBeans组件的属性。
HTML标签。 Struts提供了一组自定义JSP标签,用于创建与JavaBeans组件相关联的HTML表单。此bean/form关联有两个有用的目的:
表单字段验证。 Struts拥有一个强大、可扩展的验证器,可以用于统一验证您的表单字段。此验证可以在服务器端(使用Java)执行,也可以在客户端(使用JavaScript)和服务器端同时执行。
“管道代码”包含在Struts框架中。 例如,将HTTP请求参数映射到Java对象是由Struts处理的。您不必自己处理它。这使您更加关注领域问题,而不是构建基础设施。
良好的文档和丰富的书籍资源。 如果您必须离开项目和/或其他人必须维护它,那么使用一个知名和广泛记录的框架将使这项工作变得更加容易。自定义的框架无法匹配这些优势。
广泛的用户测试。由于Struts在许多Web应用程序中使用,所以该框架将被比您独自编写的任何东西更多的人关注。通常情况下,但并非总是如此,这意味着您遇到的任何问题都可能已被其他人(希望已解决)看到过。
大型知识库。我同意这可能不像以前那样有效,但Struts多年来已被用于许多项目中。从可维护性的角度来看,使用一个众所周知的框架可以使其他人更容易地处理您的应用程序,并帮助建立您未来的个人简历。现在大多数开发都是在组件化空间(如JSF、wicket、tapestry)或类似Rails的空间(如rails、grails、lift)进行的,但Struts架构仍然在使用和有效。
您没有说您是否在公司环境中开发,对于个人项目来说,可维护性问题可能并不是那么重要。
如果你决定使用Struts,你也可以看看stripes,这是一个类似于Struts的框架,基于相同的概念,但在配置方面更少冗长,有更合理的默认值,更少的XML和对注释的支持。我完全同意你对Struts的看法 - 我个人认为它的时间已经过去了。
在v1中,我放弃了Struts(我相信与最新版本完全不同),因为表单bean只是增加了样板代码。
自那以后,我参与的大多数应用程序都使用Spring作为依赖注入框架,这使得Spring MVC成为自然选择 - 它简单、直截了当且最小化。
不仅适用于Struts。但是使用框架需要考虑以下几点:
对我来说最重要的是:
Struts 是一款开源框架-- 拥有庞大的社区支持-- 有许多相关的书籍可供参考-- 是一款经过验证的框架-- 备受欢迎-- 自2001年起就已经推出-- +---- 以上所述的特点...........
但当您使用 Struts 时,更好的选择是 Struts2。
我认为你对移除Struts的感觉是一个明智而可以理解的反应。Struts似乎对应用程序帮助不大。