Struts2是一个相当强大的Java Web开源框架,是一个基于POJO的Action的MVC Web框架。它是基于当年的WebWork和XWork框架,继承其优点,同时做了相当多的改进。Struts2在Java Web开发的地位曾经可以说是大红大紫,而从开发人员的角度来分析,Struts2的成功是与其优良的设计分不开的。
Struts基于MVC架构,框架结构清晰,开发流程一目了然,开发人员可以很好的掌握开发的流程。
在项目开发过程中,一个具体的功能的开发流程大体是:拿到一个具体的功能需求文档和设计好的前台界面,分析需要从前台传递哪些参数,确定参数的变量名称,在Action中设置相应的变量,这些参数在前台如何展示,并将页面上的一些控件适当地使用Struts2提供的服务器端控件来代替,编写Action对应的方法来完成业务逻辑,最后做一些与配置相关的设置。
当然实际的开发比这个过程要复杂,一般要涉及到数据库、验证和异常处理等。但是在使用Struts2进行开发的过程中,开发者的关注点绝大部分是在如何实现业务逻辑上,开发过程十分清晰明了。
使用OGNL进行参数传递
OGNL(Object-Graph Navigation Language,对象导航语言)提供了在Struts2里访问各种作用域的数据的简单方式,你可以方便地获取Request、Attribute、Application、Session或Parameters中的数据,大大简化了开发人员在获取这些数据时的代码量。
提供强大的拦截器
Struts2的拦截器是一个Action级别的AOP,Struts中的许多特性都是通过拦截器来实现的,例如异常处理、文件上传或验证等。拦截器是可配置和可重用的,可以将一些通用的功能,比如登陆验证、权限验证等置于拦截器中,以此来完成一些Java Web项目中比较通用的功能。在我实现的一个Web项目中,就是使用Struts2的拦截器来完成了系统中的权限验证功能。
易于测试
Struts2的Actoin都是简单的POJO,这样可以方便地对Struts2地Action编写测试用例,大大地方便了Java Web项目的测试。
易于扩展的插件机制
在Struts2中添加扩展是一件愉快而轻松的事情,只需要将所需要的jar包放到WEB-INF/lib文件夹下,在struts.xml中做一些简单的设置就可以实现扩展。常见的Struts2的扩展可以通过这个链接找到:http://cwiki.apache.org/S2PLUGINS/home.html。
模块化
Struts2已经把模块化作为了体系架构中的基本思想,可以通过三种方式来将应用程序模块化:
1.将配置信息拆分为多个文件。
2.把自包含的应用模块创建为插件。
3.创建新的框架特性,将与特定应用无关的新功能组织成插件,以添加到多个应用中去。
全局结果与声明式异常
为应用程序添加全局的Result,和在配置文件中对异常进行处理。这样,当处理过程中出现指定异常的时候,就可以跳转到特定页面。
"生活中难免会有坎坷不安,但我们终要学会长大,学会在风雨里竭尽全力,保护我们想要保护的人,撑起我们应该撑起的天。"
来源:https://www.cnblogs.com/yanggb/p/11154035.html