传智播客struts2课件资料

上传人:w****i 文档编号:103072665 上传时间:2019-10-05 格式:PPT 页数:165 大小:1.40MB
返回 下载 相关 举报
传智播客struts2课件资料_第1页
第1页 / 共165页
传智播客struts2课件资料_第2页
第2页 / 共165页
传智播客struts2课件资料_第3页
第3页 / 共165页
传智播客struts2课件资料_第4页
第4页 / 共165页
传智播客struts2课件资料_第5页
第5页 / 共165页
点击查看更多>>
资源描述

《传智播客struts2课件资料》由会员分享,可在线阅读,更多相关《传智播客struts2课件资料(165页珍藏版)》请在金锄头文库上搜索。

1、北京传智播客教育 ,Struts2,讲师:冯威,Struts2 概述,Struts2 是一个用来开发 MVC应用程序的框架. 它提供了 Web 应用程序开发过程中的一些常见问题的解决方案: 对页面导航活动进行管理 对来自用户的输入数据进行合法性验证 统一的布局 可扩展性 国际化和本地化 支持 Ajax 表单的重复提交 ,Struts2入门,北京传智播客教育 ,搭建Struts2开发环境的步骤,搭建Struts2环境时,我们一般需要做以下几个步骤的工作: 1创建javaweb工程 2找到开发Struts2应用需要使用到的jar文件. 3创建jsp文件. 4创建action文件 5编写Struts

2、2的配置文件 6在web.xml中加入Struts2 MVC框架启动配置,1 创建javaweb工程,创建struts2test工程,北京传智播客教育 ,2 开发Struts2需要的jar文件,到http:/struts.apache.org/download.cgi#struts2014下载struts-2.x.x-all.zip,目前最新版为2.1.8。下载完后解压文件,开发struts2应用需要依赖的jar文件在解压目录的lib文件夹下。不同的应用需要的JAR包是不同的。下面给出了开发Struts 2程序最少需要的JAR。 struts2-core-2.1.8.1.jar :Struts

3、 2框架的核心类库 xwork-core-2.1.6.jar :XWork类库,Struts 2在其上构建 ognl-2.7.3.jar :对象图导航语言(Object Graph Navigation Language), struts2框架通过其读写对象的属性 freemarker-2.3.15.jar :Struts 2的UI标签的模板使用FreeMarker编写 commons-logging-1.1.x.jar :ASF出品的日志包,Struts 2框架使用这个日志 包来支持Log4J和JDK 1.4+的日志记录。 commons-fileupload-1.2.1.jar 文件上传组

4、件,2.1.6版本后需要加入此文件 commons-io-1.3.2.jar,上传文件依赖的jar包,北京传智播客教育 ,3 创建jsp文件,定义test.jsp文件 增加如下连接: helloworld,北京传智播客教育 ,4 创建action文件,import com.opensymphony.xwork2.Action; public class HelloWorldAction implements Action public String execute() throws Exception System.out.println(“helloWorld“); /转到成功页面 retu

5、rn “success“; 注:struts2中action要实现action的接口,北京传智播客教育 ,5 编写Struts2的配置文件,Struts2默认的配置文件为struts.xml ,该文件需要存放在WEB-INF/classes下,也就是当前工程的src下,该文件的配置模版如下: 配置 package 元素,Struts2 把各种 Action 分门别类地组织成不同的包. 可以把包想象为一个模块. 一个典型的 struts.xml 文件可以有一个或多个包,每个 package 元素都必须有一个 name 属性,namespace 属性是可选的, 如果它没有给出, 则以 “/” 为默

6、认值. 若 namespace 有一个非默认值, 则要想调用这个包里的Action, 就必须把这个属性所定义的命名空间添加到有关的 URI 字符串里,package 元素通常要对 struts-default.xml 文件里定义的 struts-default 包进行扩展. 这么做了以后, 包里的所有动作就可以使用在 struts-default.xml 文件里的结果类型和拦截器了.,北京传智播客教育 ,5 编写Struts2的配置文件,配置 action 元素,action 元素嵌套在 package 元素内部, 它表示一个 Struts请求.,每个 action 都必须有一个 name 属

7、性, 该属性和用户请求 servletPath 之间存在着一一对应关系,action 元素的 class 属性是可选的. 如果没有配置 class 属性, Struts 将把 com.opensymphony.xwork2.ActionSupport 作为其默认值. 如果配置了 class 属性, 还可以使用 method 属性配置该类的一个动作方法. method 属性的默认值为 execute,北京传智播客教育 ,5 编写Struts2的配置文件,配置 result 元素,result 元素: 的一个子元素, 它告诉 struts 在完成动作后把控制权转交到哪里. result 元素(的n

8、ame 属性)对应着 Action 方法的返回值. 因为动作方法在不同情况下可能返回不同的值, 所以同一个 action 元素可能会有多个 result 元素,result 元素的 name 属性建立 和 Action 方法返回值之间的映射关系。 name 属性的默认值为 “success”,result 元素的 type 属性负责指定结果类型. type 属性的值必须是在包含当前包或者是当前包的父包里注册过的结果类型. type 属性的默认值为 dispatcher,北京传智播客教育 ,5 编写Struts2的配置文件,在struts2框架中使用包来管理Action,包的作用和java中的类

9、包是非常类似的,它主要用于管理一组业务功能相关的action。在实际应用中,我们应该把一组业务功能相关的Action放在同一个包下。 配置包时必须指定name属性,如果其他包要继承该包,必须通过该属性进行引用,注意:name名称是唯一 。包的namespace属性用于定义该包的命名空间。该属性可以不配置,对本例而言,如果不指定该属性,默认的命名空间为“/” 通常每个包都应该继承struts-default包, struts-default包是由struts内置的,它定义了struts2内部的众多拦截器和Result类型。而Struts2很多核心的功能都是通过这些内置的拦截器实现。如:从请求中把

10、请求参数封装到action、文件上传和数据验证等等都是通过拦截器实现的。当包继承了struts-default包才能使用struts2为我们提供的这些功能。 struts-default包是在struts2-core-2.x.x.jar文件中的struts-default.xml中定义。 struts-default.xml也是Struts2默认配置文件。 Struts2每次都会自动加载 struts-default.xml文件。 包还可以通过abstract=“true”定义为抽象包,抽象包中不能包含action。,北京传智播客教育 ,6 Struts2的启动配置,在struts2中,str

11、uts框架是通过Filter启动的。在web.xml中的配置如下: StrutsPrepareAndExecuteFilter org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter org.apache.struts2.dispatcher.FilterDispatcher StrutsPrepareAndExecuteFilter /* 在StrutsPrepareAndExecuteFilter的init()方法中将会读取类路径下默认的配置文件struts.xml完成初始化操作。 注意:struts2读取

12、到struts.xml的内容后,是将内容封装进javabean对象然后存放在内存中,以后用户的每次请求处理将使用内存中的数据,而不是每次请求都读取struts.xml文件,6 Struts2的启动配置(底层代码),以上方法在org.apache.struts2.dispatcher.Dispatcher类中,北京传智播客教育 ,Struts2的处理流程,StrutsPrepareAndExecuteFilter,Interceptor,Action,Result,Jsp/html,用户请求,Struts2内置的一些拦截器或用户自定义拦截器,用户编写的action类,类似struts1中的Act

13、ion,类似struts1中的forward,响应,拦截器概述(struts-default.xml),拦截器概述(演示过滤器和拦截器的执行顺序),使用如下三个拦截器演示struts的执行流程(断点演示) 默认的是defaultStack ,在栈中的顺序如下:,Struts基本配置,北京传智播客教育 ,访问HelloWorld应用的路径的设置,在struts2中,访问struts2中action的URL路径由两部份组成: 包的命名空间+action的名称 例如: 访问本例子HelloWorldAction的URL路径为: /primer/helloWorldAction.action (注意:

14、完整路径为:http:/localhost:端口/内容路径/primer/helloWorldAction.action)。另外我们也可以加上.action后缀访问此Action。 /success.jsp ,北京传智播客教育 ,Action名称的搜索顺序,1获得请求路径的URI,例如url是: http:/server/struts2/path1/path2/path3/test.action 2首先寻找namespace为/path1/path2/path3的package, 如果存在这个package,则在这个package中寻找名字为test的action, 如果不存在这个packag

15、e则转步骤3; 3寻找namespace为/path1/path2的package, 如果存在这个package,则在这个package中寻找名字为test的action, 如果不存在这个package,则转步骤4; 4寻找namespace为/path1的package, 如果存在这个package,则在这个package中寻找名字为test的action, 如果仍然不存在这个package,就去默认的namaspace的package下面去找名 字为test的action(默认的命名空间为空字符串“/” ), 如果还是找不到,页面提示找不到action。,北京传智播客教育 ,Action配

16、置中的各项默认值,问题:如果没有为action指定class,默认是com.opensymphony.xwork2.ActionSupport 执行ActionSupport中的execute方法 由struts-default.xml文件 决定 /success.jsp /success.jsp 1如果没有为action指定class,默认是ActionSupport。 2如果没有为action指定method,默认执行action中的execute() 方法。 ActionSupport的execute方法里面就一句话return “success“; 3如果没有指定result的name属性,默认值为success。,北京传智播客教育 ,Action配置中的各项默认值,问题:如果请求的路径查找不到action的情况下,程序运行会抛出异常 ,可以通过配置当找不到action的情况下,会执行默认的action /success.jsp /success.jsp ,北京传智播客教育 ,ActionSupport

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号