From Gossip@caterpillar

开源框架: Struts Gossip

目前没有人可以动摇我的地位。。。呼。。。

Model 2 是现在设计Web应用程式的一个主流模式,也是经过验证最好的Web层架构模式之一,在1999年2月的JavaWorld大会上,Govind Seshadri的 Understanding JavaServer Pages Model 2 architecture 中清楚的指出了Model 2是一种 MVC 模式。

Struts 是支持Web MVC开发模式的 Framework, 由 Craig McClanahan 于2000年3月发起的专案,目前是 Apache 专案中的一个子专案,即使 Struts 目前有许多称其设计不良的非议之声,但其使用人员多,文件丰富,目前来说仍是业界开发Web应用程式时一个接受度很高的MVC Framework选择。








Struts API
        这边会将我对Struts的了解整理起来,整理过程中所使用的Servlet Container是 Tomcat 5.5.4,Struts版本是1.2.4,Struts 1.2之后也作了不少改进,您可以看看 1.2 的 Release Notes 了解一些改变的内容。

  • Struts 核心框架
Struts中支 持MVC的主要类别及一些辅助类别,在这 边先不使用Struts标签库(Tag Library),这会让我们更了解Struts中MVC的运作流程。

  • Struts 辅助方案
除了基本的MVC 架构支援之外,对于一些实际开发时可能面 对到的进阶议题,Struts提供了一些辅助方案,您可以先考虑这些方案是否合用,以节省开发类似工具所要花费的时间。

Struts 标签库
        如果您的View层技术是使用JSP,而且您想要快速开发,充分利用Struts框架的功能,您就可以使用Struts标签库,尽量饱受批评,但使用它确 实可以省不少功夫。
  • Bean 标签
如果您使用的是 JSP 2.0以下的版本,Bean标签可以让您不必撰写scriplet就取得Servlet相关的讯息,若您使用的是JSP 2.0,则可以使用Expression Language及其隐含物件来取代一些Bean标签。

  • Html 标签
Struts的 Html标签元件用以取代一些静态HTML 元件,这可以让您在JSP页面上利用 Struts框架的资源,像是ActionForm绑定、统一的讯息管理等,但得到好处的同时,您所付出的是View层与Struts框架的耦合度可能会 因此增加。

  • Logic 标签
Logic标签主 要与页面呈现逻辑相关,根据指定的条件来 决定来呈现必要的元件,Struts的 Logic标签重叠到JSTL中的部份标签,所以建议您将Struts的Logic标签当作JSTL外的辅助标签。

辅助框架
        在Struts中整合了Validator验证框架,以及Tiles模版引擎,这边一并简介它们的使用方式。

  • Validator 框架
Jakarta Commons Validator 框架可以将验证逻辑移至ActionForm之外,辅助Struts开发人员使用或自订客户端与伺服端的验证工作。

  • Tiles 模版引擎
Tiles是一个 模版引擎(Template Engine),它可以让网页的配置(Layout)标签与内容分离,提供一个版面管理机制。

参考资料
        Struts的参考资料不少,随便 Google 都会有一堆,但多数为英文,中文资源比较零散,这边收集几个比较完整的Struts资源网站。