Struts2框架完全指南:从入门到精通

需积分: 9 0 下载量 119 浏览量 更新于2024-07-18 收藏 1.18MB PDF 举报
"Struts2教程【完整版】:深入理解Struts2框架的准备、核心包和配置文件" Struts2是一个强大的Java Web应用程序框架,遵循MVC(Model-View-Controller)设计模式,旨在简化开发过程,提高代码的可重用性和可维护性。该框架提供了一种组织应用程序的方式,使开发者能够更好地分离业务逻辑和表示层,从而实现更加灵活和可扩展的Web应用。 在开始使用Struts2之前,需要进行一些准备工作。这包括下载并解压Struts2的发行包,其中包含了必要的文件和目录,如`apps`、`docs`、`lib`和`src`。`lib`目录下的jar文件是运行Struts2应用所必需的,包括核心库、模板引擎、日志工具、对象图导航语言以及文件上传组件等。特别是`commons-fileupload-1.2.1.jar`,它是处理文件上传功能所必需的,如果缺少会导致运行时异常。 Struts2的核心包包括了以下几个关键组件: 1. `struts2-core-2.1.6.jar`:这是开发的核心类库,包含了Struts2框架的基本功能。 2. `freemarker-2.3.13.jar`:Freemarker是一个模板引擎,用于生成动态HTML或其他文本格式的视图。 3. `commons-logging-1.0.4.jar`:提供了日志服务,便于记录应用程序中的各种信息。 4. `ognl-2.6.11.jar`:对象图导航语言,用于在Action对象和JSP之间传递数据。 5. `xwork-2.1.2.jar`:XWork是Struts2的基础,包含了许多核心概念和机制。 6. `commons-fileupload-1.2.1.jar`:文件上传组件,处理客户端上传的文件。 配置Struts2框架涉及两个主要的XML文件: 1. `web.xml`:这是Servlet容器的部署描述符,用于配置Struts2的过滤器`StrutsPrepareAndExecuteFilter`。这个过滤器在请求到达Action之前进行预处理,并在请求执行后处理结果。它还可以加载额外的XML配置文件,并设置一些框架行为的参数。此外,`ActionContexCleanUp`过滤器用于清理Action上下文,确保多线程环境下的正确性。 2. `struts.xml`:这是Struts2的核心配置文件,定义了Action、结果类型、拦截器等。开发者可以在此基础上包含其他模块特定的配置文件,提高代码的组织性和可维护性。 在`struts.xml`文件中,你可以声明Action类、指定URL映射、配置结果类型(如JSP或FreeMarker模板)、设置拦截器栈等。每个Action可以通过`<action>`标签定义,其中包含`name`、`class`(Action类的全限定名)和`result`等属性。`result`元素则定义了Action执行后的视图跳转。 例如: ```xml <action name="myAction" class="com.example.MyAction"> <result name="success">/success.jsp</result> <result name="error">/error.jsp</result> </action> ``` 在这个例子中,`myAction`被映射到`MyAction`类,当Action执行成功返回`success`时,用户将被重定向到`success.jsp`,如果出现错误则跳转到`error.jsp`。 此外,Struts2还支持使用拦截器来实现如权限检查、日志记录等功能。拦截器通过`<interceptors>`标签定义,并在`<action>`中引用。拦截器的顺序决定了它们的执行顺序。 Struts2框架提供了一套完整的解决方案,涵盖了Web应用开发的多个方面,从请求处理到视图渲染,再到业务逻辑的控制。通过合理配置和利用其丰富的功能,开发者可以构建出高效、健壮的Java Web应用。
2016-01-07 上传
一、准备工作及实例 3 1.解压struts-2.1.6-all.zip 3 2.六个基本包 3 3.初识struts2配置文件 4 (1).web.xml文件 4 (2).struts.xml文件 4 (3).struts.properties(参default.properties) 4 (4)struts-default.xml 4 (5)其它配置文件 4 4.让MyEclipse提示xml信息 4 5.如何使用alt+/提示 4 6.实例 4 7.开启struts2自带的开发模式常量 6 8.vo传参模式 7 9.ModerDriven传参模式(不建议采用) 7 10.为什么要使用struts2代替struts1.x 7 二、struts.xml配置及例程 7 1.配置文件的优先级 7 2.配置形式 8 3.package配置相关 8 4.分工合作include:指定多个配置文件 10 5.tomcat认证访问 10 6.初识拦截器 11 7.Action中的method属性 12 8.使用ForwardAction实现页面屏蔽。 13 8.使用default-Action配置统一访问 14 小结Action 14 9.使用通配符 14 10.使用0配置:ZERO Annotation 15 11.Result配置详解 15 探讨type类型: 16 Type类型值 16 作用说明 16 对应类 16 chain 16 用来处理Action链 16 com.opensymphony.xwork2.ActionChainResult 16 dispatcher 16 用来转向页面,通常处理JSP 16 org.apache.struts2.dispatcher.ServletDispatcherResult 16 redirect 16 重定向到一个URL 16 org.apache.struts2.dispatcher.ServletRedirectResult 16 redirectAction 16 重定向到一个Action 16 org.apache.struts2.dispatcher.ServletActionRedirectResult 16 plainText 16 显示源文件内容,如文件源码 16 org.apache.struts2.dispatcher.PlainTextResult 16 freemarker 16 处理FreeMarker模板 16 org.apache.struts2.views.freemarker.FreemarkerResult 16 httpheader 16 控制特殊http行为的结果类型 16 org.apache.struts2.dispatcher.HttpHeaderResult 16 stream 16 向浏览器发送InputSream对象,通常用来处理文件下载,还可用于返回AJAX数据。 16 org.apache.struts2.dispatcher.StreamResult 16 velocity 16 处理Velocity模板 16 org.apache.struts2.dispatcher.VelocityResult 16 xslt 16 处理XML/XLST模板 16 org.apache.struts2.views.xslt.XSLTResult 16 全局result: 17 动态Result:了解 18 12.异常处理 18 三、在Action获取Scope对象 19 方式一、与Servlet解耦合的非IOC方式 20 方式二、与Servlet解耦合的IOC方式 21 方式三、与Servlet耦合的非IOC方式 21 方式四、与Servlet耦合的IOC方式 22 四、OGNL与ValueStack(VS) 22 1.值栈入门 22 2.OGNL入门 24 3.普通方法访问 24 4.静态方法访问 24 5.默认类Math的访问 24 6.调用普通类的构造方法 25 7.集合对象初步 25 8.集合对象进阶 25 9.N语法top语法 26 10.获取Stack Context中的信息 26 11.总结$ # %的区别 27 12.总结OGNL[重点] 27 五、拦截器 28 1.概述strust2中的拦截器 28 2.自定义拦截器 28 方式一,实现Interceptor接口。 28 方式二、继承AbstractInterceptor抽象类 29 方式三、继承MethodFilterInteceptor类 30 3.使用来MethodFilterInterceptor灵活拦截 32 4.使用默认的execAndWait拦截器 33 5.