估计在学过Struts1的人,在学Struts2时,心中都会有一个疑虑.我们有了Struts1为什么还需要Struts2呢?它怎么就能替代Struts1呢?Struts1不是已经很经典了吗?
下面我们就来了解一下到底Struts2带给了我们什么样的惊喜!
主要是Struts2有以下优点:
<1>首先,我们应该表扬Struts2的设计,他是无侵入的设计,Struts2的API不像Struts1那样,与Servlet的API和Struts的API紧密耦合.
<2>Struts2还为我们提供了一系列的拦截器,让我们可以实现AOP编程,如权限拦截等功能.
<3>Struts2提供了类型转换器,这样一来,我们就可以方便的将一些特殊类型的参数转换成我们想要的类型了.而在Struts1中,要想实现这种功能的话,就必须实现Strust1底层BeanUtil注册类型转换器才可以.
<4>Struts2提供了多种表示层技术,如JSP/freeMarker/Velocity等.
<5>Struts2还解决了Struts1的一个重大问题和难题,那就是在Struts2中可以实现对指定方法进行输入校验.
<6>Struts2提供了全局范围/包范围/Action范围的国际化资源文件管理实现.