Struts的优缺点
优点:
1.实现MVC模式,结构清晰,使开发者只关注业务逻辑的实现。
2.有丰富的tag,Struts的标记库(Taglib),如能灵活运用,能大大的提高开发效率。另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点。
3.页面导航,页面导航将是今后的一个发展方向,事实上,这样做,是系统脉络更加清晰。通过一个配置文件,即可整个系统各部分之间联系,这对于后期维护有莫大的好处。尤其是当一批开发者接手这个项目时,这种优势更加体现。
4.提供Exception处理机制。
5.数据库连接池的管理。
6.支持I18N.
缺点:
1.转到展示层时,需要配置forward,每一次转到展示层,相信大多数都是直接转到jsp,而涉及到转向,需要配置forward,如果有多个展示层的jsp,则需要配置多次,而且不包括有时候目录,文件的变更,需要重新修改forward.每次修改配置文件,都要重新部署整个项目,而tomcat这样的服务器,还必须重新启动服务器,如果业务变更复杂频繁的系统,这样的操作简至不可想象。
2.Struts的Action必需是thread-safe方式,它仅仅允许一个实例去处理所有请求。所以,这个就引起了线程安全的问题。
3.测试不方便。Struts的每个Action都与web层耦合在一起,这样它的测试依赖于web容器,单元测试也很难实现。不过有一个Junit的扩展工具Struts TestCase可以实现它的单元测试。
4.类型转换。Struts的FormBean把所有的数据作为String类型,它可以使用工具Commons-Beanutils进行类型转换。但它的转化都是在Class级别,而且转化的类型是不可配置的。类型转化是的错误信息返回给用户也是非常困难的。
5.对Servlet的依赖性过强。Struts处理Action是需依赖Servlet的ServletResquest和ServletResponse,所以它摆脱不了Servlet容器。
6.前端表达式语言方面,Struts集成了JSTL,所以它主要使用JSTL表达式语言来获取数据。可是JSTL的表达式语言在Collection和索引属性方面处理显得很弱。
7.对Action执行控制困难。Struts创建一个Action,如果系那个控制它的执行顺序将会非常困难。甚至你要重新去写Servlet来实现你的这个功能需求。
8.对Action执行前和后的处理,Struts处理Action的时候是基于class的hibernate,很难在action处理前和后进行操作。
9.对事件支持不够。在Struts中,实际是一个表单Form对应一个action类,使得struts的一个表单只能对应一个事件,struts这种事件方式称为application event,application event和component event相比是一种出粗颗粒的事件。

浙公网安备 33010602011771号