对于java web领域不得不说的就是开源框架,从最最基础的MVC我们衍生出来n多框架,其中struts2更是由于其方便性和简单性备受欢迎。
但是struts2真的有我们所认识的那么出色吗?
虽然struts2是所谓的“轻量级”框架,但是用struts2开发过几个项目的笔者并不这么认为。首先,struts2封装了几乎一般web项目涉及的所有领域。控制器,过滤器,国际化甚至是标签库。那么这些封装的程度如何呢?
首先来看控制器。这里所说的控制器即为struts.xml以及处理该xml的类。对于自己搞过mvc模式的开发者来说,把控制器抽像成xml文件大概都是考虑过的。因为这样可以很好的实现model和controller的解耦。而struts2的封装也是恰到其分的,struts.xml可配置几乎你能想到所有需要配置的内容,对跳转流程的控制也是相当明了的。对于小型项目action不是很多情况下条目的明了程度也是可圈可点。
接下来看看标签库。struts2的标签库很强大,但这仅仅是说功能上的。struts2的标签可以做到让你完全不用再jsp页面上写一条java代码,而且可扩展性也不是一般的强。但是追溯到性能上,那struts2的标签库可就是受人诟病的了。虽然笔者没有自己做过测试,但是见过别人的测试文章,用的是struts2和springmvc进行对比,如果struts2使用自带标签库,那么其运行效率是springmvc的10分之1都不到。但是如果不是用struts2的标签库,那么运行效率的提升不是一个档次。当然这里笔者拿不出实际的数据来进行论证,有兴趣的童鞋可以自行去测试一下。
最后笔者想说一下,对于一个小型项目,类似于一个学校的教务管理系统,struts2对于我们来说可能是过于累赘的。我们用到的只是struts2的凤毛麟角的功能,却需要去导入所有的内容。不过如果不是相当的追求效率,而且想要进行快速开发,那么struts2不失为一个不错的框架。