优点:
1. 实现 MVC模式,结构清晰,使开发者只关注业务逻辑的实现.
2.有丰富的tag 可以用 ,Struts的标记库(Taglib),如能灵活动用,则能大大提高开发效率
3. 页面导航
使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,
这对于后期的维护有着莫大的好处。尤其是当另一批开发者接手这个项目时,这种优势体现
得更加明显。
4. 提供Exception处理机制 .
5. 数据库链接池管理
6. 支持I18N
缺点
一、 转到展示层时,需要配置 forward,如果有十个展示层的 jsp,需要配置十次 struts,
而且还不包括有时候目录、文件变更,需要重新修改 forward,注意,每次修改配置之后,
要求重新部署整个项目,而 tomcate这样的服务器,还必须重新启动服务器
二、 二、 Struts的 Action必需是thread-safe方式,它仅仅允许一个实例去处理所有
的请求。所以action 用到的所有的资源都必需统一同步,这个就引起了线程安全的问题。
三、 测试不方便. Struts 的每个Action 都同Web层耦合在一起,这样它的测试依赖于
Web容器,单元测试也很难实现。不过有一个Junit的扩展工具Struts TestCase 可以实现
它的单元测试。
四、 类型的转换. Struts 的FormBean 把所有的数据都作为 String类型,它可以使用工
具Commons-Beanutils 进行类型转化。但它的转化都是在Class 级别,而且转化的类型是
不可配置的。类型转化时的错误信息返回给用户也是非常困难的。
五、 对 Servlet的依赖性过强. Struts处理Action时必需要依赖ServletRequest 和
ServletResponse,所有它摆脱不了Servlet容器。
六、 前端表达式语言方面.Struts集成了JSTL,所以它主要使用 JSTL的表达式语言来