开源框架: 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中支持MVC的主要类别及一些辅助类别,在这边先不使用Struts标签库(Tag Library),这会让我们更了解Struts中MVC的运作流程。
除了基本的MVC架构支持之外,对于一些实际开发时可能面对到的进阶议题,Struts提供了一些辅助方案,您可以先考虑这些方案是否合用,以节省开发类似工具所要花费的时间。
- Struts 标签库
如果您的View层技术是使用JSP,而且您想要快速开发,充分利用Struts框架的功能,您就可以使用Struts标签库,尽量饱受批评,但使用它确实可以省不少功夫。
如果您使用的是JSP 2.0以下的版本,Bean标签可以让您不必撰写scriplet就取得Servlet相关的讯息,若您使用的是JSP 2.0,则可以使用Expression Language及其隐含对象来取代一些Bean卷标。
Struts的Html卷标组件用以取代一些静态HTML组件,这可以让您在JSP页面上利用 Struts框架的资源,像是ActionForm绑定、统一的讯息管理等,但得到好处的同时,您所付出的是View层与Struts框架的耦合度可能会因此增加。
Logic卷标主要与页面呈现逻辑相关,根据指定的条件来决定来呈现必要的组件,Struts的 Logic卷标重迭到JSTL中的部份标签,所以建议您将Struts的Logic标签当作JSTL外的辅助标签。
- 辅助框架
在Struts中整合了Validator验证框架,以及Tiles模版引擎,这边一并简介它们的使用方式。
Tiles是一个模版引擎(Template Engine),它可以让网页的配置(Layout)卷标与内容分离,提供一个版面管理机制。
- 参考数据
Struts的参考数据不少,随便 Google 都会有一堆,但多数为英文,中文资源比较零散,这边收集几个比较完整的Struts资源网站。