Struts的好处是什么?

时间:2009-08-14 05:19:11

标签: java model-view-controller tomcat servlets struts

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

  1. MVC。 Servlet / JSP对我来说很好,其中JSP是视图,servlet是控制器。我认为从XML文件获取映射没有任何好处,因为我们的映射是非常静态的。
  2. 行动表格。我可以看到行动形式的一些好处,但不是很大。
  3. 标签。我已经使用了JSTL,并且看不到使用Struts标签的任何优势。
  4. 所以我正在考虑删除Struts。任何人都可以想到我可能错过的任何其他好处吗?

6 个答案:

答案 0 :(得分:11)

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

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

  2. Form Beans。

  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在很多网络应用程序中使用,因此框架将被更多的眼睛所看到,而不是单独编写的任何东西。通常,但并非总是如此,这意味着您所遇到的任何问题都会被其他人看到(并希望已经解决)。

答案 1 :(得分:3)

知识库很大。 我同意这可能不像过去那样有效,但多年来Struts已被用于许多项目中。从可维护性的角度来看,使用一个众所周知的框架可以让其他人更轻松地处理您的应用程序,并帮助您构建自己的未来简历。现在,大多数开发都在基于组件的空间(如JSFwickettapestry)或类似轨道的空间(如rails,{{3} },grails)但struts arcitechture仍在使用且有效。

你没有说你是否在公司环境中发展,对于个人项目而言,维护性问题可能不是一个问题。

如果您认为struts非常适合您,您还可以查看lift,这是一个类似Struts的框架,它基于相同的概念,但在配置更明智的默认设置时更简洁,更少xml并支持注释。

答案 2 :(得分:3)

我完全同意你关于Struts的观点 - 我个人认为它的时间已经过去了。

我在v1中关闭了Struts(我认为它与最新版本完全不同),因为表单bean只是添加了样板代码来编写。

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

答案 3 :(得分:1)

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

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

对我来说最重要的是:

  • 您不必担心struts代码上的问题,只需升级。
  • 您可以将工作重点放在业务逻辑上。

答案 4 :(得分:1)

Struts是开源的 - 大社区---- 可用书籍数量----- 经过验证的FrameWork ---- 流行框架----- 自2001年起可用---- + ---- 上面提到的功能............

但是当你使用struts时,更好的选择是struts2。

答案 5 :(得分:1)

我认为你对删除Struts的感觉是一种合理且可理解的反应。 Struts似乎对应用程序没有太大作用。