1、在软件设计上Struts2没有像Struts1那样跟ServletAPI和StrutsAPI有着紧密的偶合,Struts2的应用可以不依赖于ServletAPI 和strutsAPI。Struts2的这种设计属于无侵入式设计,而Struts1却属于侵入式设计。
public class OrderListAction extends Action{
public Actionforward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response) throws Exception{
}
}
2、Struts2提供了拦截器,利用拦截器可以进行AOP编程,实现如权限拦截等功能。
3、Struts2提供了类型转换器,我们可以把特殊的请求参数转换成需要的类型。在Struts1中,如果我们要实现同样的功能,就必 须向Struts1的低层实现BeanUtil注册类型转换器才行。
4、Struts2提供支持多种表现层技术,如:JSP、freeMarker、Velocity等。
5、Struts2的输入校验可以对指定方法进行校验,解决了Struts1长久之痛。
6、Struts2提供了全局范围、包范围和Action范围的国际化资源文件管理实现。