我们在选择框架时,可以按照4个指标来衡量其优劣,健壮性,易用性,扩展性,侵入性,这4个指标需求来保持均衡,任何一个指标不合格,都可能对项目产生灾难性的影响。Struts2 是轻量级的MVC框架,重心在于控制层和表现层。轻量级,指的是Struts2具有比较低的侵入性,就是它对我们代码的依赖程度很低,简单来说,在使用Struts2框架时,我们的代码中基本上不需要import它的包,而且Struts是一个成熟稳定的框架,目前最稳定的版本是2.1.8,它易学好用,几天即可上手,Struts实现了MVC,满足了MVC的设计思想,运用了AOP的思想,使用拦截器来扩展业务控制器Action。
MVC是Model—View— Controler 的简称。即模型—视图—控制器。MVC是一种设计模式,它强制性的把应用程序的输入、处理和输出分开。 MVC中的模型、视图、控制器它们分别担负着不同的任务。 1.视图: 视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并接受用户的输入。视图不进行任何业务逻辑处理。 2.模型: 模型表示业务数据和业务处理。相当于JavaBean。一个模型能为多个视图提供数据。这提高了应用程序的重用性 3.控制器: 当用户单击Web页面中的提交按钮时,控制器接受请求并调用相应的模型去处理请求。然后根据处理的结果调用相应的视图来显示处理的结果。
MVC的处理过程:首先控制器接受用户的请求,调用相应的模型来进行业务处理,并返回数据给控制器。控制器调用相应的视图来显示处理的结果。并通过视图呈现给用户。
使用Struts2是因为Struts2是建立在MVC这种公认的好的模式上的,Struts在M、V和C上都有涉及,很好的将应用程序进行了分层,使开发者更关注于业务逻辑的实现;其次,它是个开源项目得到了包括它的发明者Craig R.McClanahan 在内的一些程序大师和高手持续而细心的呵护,并且经受了实战的检验,使其功能越来越强大,体系也日臻完善。struts有着丰富的taglib,如能灵活运用,则能大大提高开发效率。但它主要是提供一个好的控制器和一套定制的标签库上,也就是说它的着力点在C和V上,因此,它天生就有MVC所带来的一系列优点,如:结构层次分明,高可重用性,增加了程序的健壮性和可伸缩性,便于开发与设计分工,提供集中统一的权限控制、校验、国际化、日志等等。
在我们使用Struts2做开发的时候,就相当于使用了MVC,这是Struts2自动帮助我们实现的,是默认的,隐含的,我们不需要再写特别代码来实现MVC。做为一个框架,Struts2提供了一系列的API,我们可以使用它们来简化代码的编写,从而提升开发效率。这些API复用程度很高,对业务代码的依赖性也很小,甚至很多是Struts2自动调用的,因此很大程度上,我们开发变得可以复用。所以我选择用Struts2开发我的项目。