ITEEDU

开源框架: 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资源网站。