struts2框架--搭建
Struts2是一个用来开发MVC应用程序的框架。它提供了Web应用程序开发过程中的一些常见问题的解决方案:
用户输入数据的合法性验证统一的布局可扩展性国际化和本地化支持Ajax表单的重复提交,等等Struts1是全世界第一个发布的MVC框架在2001年发布Struts2
并不是Struts1的升级版是由WebWork基础上发展起来的吸收了Struts1和WebWork两者的优势搭建Struts2环境时,我们一般需要做以下几个步骤的工作:
1.创建javaweb工程2.找到开发Struts2应用需要使用到的jar文件3.创建jsp文件4.创建action文件5.编写Struts2的配置文件6.在web.xml中加入Struts2 MVC框架启动配置
到http://struts.apache.org/download.cgi#struts2014下载struts-2.x.x-all.zip,目前最新版为2.3.1.1。下载完后解压文件,开发struts2应用需要依赖的jar文件在解压目录的lib文件夹下。不同的应用需要的JAR包是不同的。下面给出了开发Struts2程序最少需要的JAR。
步骤:
1)导入需要的jar包
struts2-core-2.3.1.1.jar:Struts 2框架的核心类库
xwork-core-2.3.1.1.jar:Command模式框架,WebWork和Struts2都基于xwork
ognl-3.0.3.jar:对象图导航语言(Object Graph NavigationLanguage),struts2框架通过其读写对象的属性(不是struts框架的jar包)
freemarker-2.3.18.jar:Struts 2的UI标签的模板使用FreeMarker编写(可以替代jsp页面)
commons-fileupload-1.2.2.jar: 文件上传组件,2.1.6版本后需要加入此文件
commons-io-2.0.1.jar:传文件依赖的jar包
commons-lang-2.5.jar:对java.lang包的增强
commons-logging-1.1.x.jar:ASF出品的日志包,Struts 2框架使用这个日志包来支持Log4J和JDK 1.4+的日志记录
freemarker-2.3.18.jar:Struts 2的UI标签的模板使用FreeMarker编写
asm-3.3.jar:提供了字节码的读写的功能,包含了核心的功能,而其他的jar包都是基于这个核心的扩展.
asm-commons-3.3.jar:提供了基于事件的表现形式。
asm-tree-3.3.jar:提供了基于对象的表现形式。
javassist-3.11.0.GA.jar:代码生成工具, struts2用它在运行时扩展 Java类
2)创建一个类实现struts2的action类或者继承ActionSupport,复写execute方法,
默认返回值return="success"就可以转发到指定的页面
如果修改那么在struts.xml文件<result name="与之对应的返回值">标签内设置name属性
action是多实例
3)在web.XML配置核心过滤器(核心过滤器在struts2核心包里)
4)在src里面创建struts.xml文件(必须是struts.xml)//需要引入dtd约束文档在struts的核心类中,配置编辑提示(搜索xml-->xml catalog-->添加-->点file system找打dtd的位置-->打开dtd复制-//Apache Software Foundation//DTD Struts Configuration 2.3//EN)
<struts>
//package 包
--name:包名,唯一的,必选项,用于继承(在当前的xml文件中应用),支持多继承用,分开
--namespace: 命名空间,唯一的,可选,缺省值:"/"
--extends: 继承
--extends: struts-default 继承struts-default下的struts-default包,是struts2底层提供的封转了很多拦截器
<package name="" namespace="" extends="struts-default">
//action 类
--name:action的名称,对应页面请求的路径中的后半部分
--class: 对应类的完整路径
<action name="页面请求的资源路径" class="对应类的完整路径">//要执行的类
//result 结果类型
--name: 对应指定类,指定方法的返回值
--标签体部分是要转向到的页面路径
<result>/primer/success.jsp</result>//执行类执行完之后要转向的页面
</action>
</package>
</struts>
struts2的工作流程:
大概:
页面请求 struts2的核心过滤器 解析struts2.xml 执行对应的action
细致:
tomcat加载web.xml文件
web.xml文件加载struts的核心过滤器
struts的过滤器加载struts.xml文件
在核心过滤器中的init方法中解析struts.xml
页面发出请求,核心过滤器执行解析出来struts.xml的内容,执行对应类的对应方法
通过反馈回来的页面信息转向到对应页面