Struts2架构
Struts2框架处理大致过程如下:
1、浏览器发送请求,例如请求/xxx.action
2、核心控制器StrutsPrepareAndExecuteFilter根据请求决定调用哪个Action
3、Struts2的拦截器链自动对请求应用通用功能,如workflow、validation或者文件上传等动能
4、回调Action的execute方法,该方法先获取用户请求参数,然后执行某种数据库操作。实际上action只是一个控制器,它会调用业务逻辑组件来处理用户请求。
5、Action的execute方法将处理结果存入Stack Context中,并返回一个字符串;StrutsPrepareAndExecuteFilter将根据返回的字符串跳转到指定的视图资源,该资源会读取Stack Context 中的信息,并向浏览器响应数据。
下载地址 http://struts.apache.org/download.cgi#struts2512
建议下载Struts2完整版 Full Distribution 以及文档说明Doc
解压之后如右图所示:
apps:Struts2示例应用
docs:Struts2相关文档
lib:Struts2核心库以及第三方库
src:源码
Struts2的配置文件:有两份
-》配置Action的struts.xml文档
struts.xml中定义了struts2的action,定义Action时,应该指定Action的实现类并定义action处理结果与视图资源之间的映射。
-》配置Struts2全局属性的struts.properties文件
采用键值对方式指定了Struts2应用的全局属性。
搭建 Struts2 的环境:
*1 、加入 jar 包: 复制 strutsappsstruts2-blankWEB-INFlib 下的所有 jar 包到当前 web 应用的 lib 目录下.
asm-3.3.jar
asm-commons-3.3.jar
asm-tree-3.3.jar
commons-fileupload-1.3.1.jar
commons-io-2.2.jar
commons-lang3-3.2.jar
* freemarker-2.3.22.jar
javassist-3.11.0.GA.jar
log4j-api-2.3.jar
log4j-core-2.3.jar
* ognl-3.0.14.jar
* struts2-core-2.3.28.1.jar
* xwork-core-2.3.28.1.jar
*2、在 web.xml 文件中配置 struts2: 复制 appsstruts2-blank1WEB-INFweb.xml 文件中的过滤器的配置到当前 web 应用的 web.xml 文件中
*3、在当前 web 应用的 classpath 下添加 struts2 的配置文件 struts.xml: 复制 appsstruts2-blankWEB-INFclasses 下的 struts.xml 文件到当前 web 应用的 src 目录下.
其中在struts.xml可以添加DTD约束,由于使用的eclipse。流程仅供参考:
eclipse--->window--->preference--->XML-->XML catalog--->User Specified Enteries ---->add