《第2讲 Struts2的控制组件.ppt》由会员分享,可在线阅读,更多相关《第2讲 Struts2的控制组件.ppt(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、企业级企业级JAVA II 软件工程系:聂常红软件工程系:聂常红 cred_cred_内容回顾:内容回顾:如何将一个如何将一个web项目转变成一个项目转变成一个struts2项目?项目?Struts2项目的基本组成部分,创建一个项目的基本组成部分,创建一个struts2项目的步骤有哪些?项目的步骤有哪些?struts.xml应保存在哪里?应保存在哪里?如何指定表单中的如何指定表单中的action属性值?属性值?第第2讲讲 Struts2的控制组件的控制组件2.1 Struts2的控制组件的控制组件2.2 在在Struts2项目中应用控制组件项目中应用控制组件2.3 执行动作中的不同方法执行动作
2、中的不同方法2.1 struts2的控制组件的控制组件struts2的控制组件类型:的控制组件类型:核心控制器:核心控制器:FilterDispatcher业务控制器:业务控制器:Action由由web.xml的的filter和和filter-mapping标识来设标识来设置置创建业务控制器创建业务控制器(即动作类即动作类)步骤:步骤:创建动作类创建动作类创建创建struts.xml配置动作包和动作配置动作包和动作1.创建动作类语法:创建动作类语法:扩展扩展ActionSupport类类动作类被访问后默认执行动作类被访问后默认执行execute()方法:方法:public String exe
3、cute()throws Exception在动作类设置成员变量及在动作类设置成员变量及对应传入参数对应传入参数的属性的属性的的setter和和getter方法。方法。动作类通过属性的动作类通过属性的setter方法获取客户端传来方法获取客户端传来的数据,并的数据,并保存在动作类变量保存在动作类变量中,客户端则通中,客户端则通过属性的过属性的getter方法获取动作类的变量值方法获取动作类的变量值Action可以不用扩可以不用扩展展ActionSupport类,但使用它可以类,但使用它可以使我们创建的使我们创建的Action更简单、更更简单、更规范规范1.创建动作类语法(续):创建动作类语法(
4、续):动作类处理客户端请求后会返回一个字符串,动作类处理客户端请求后会返回一个字符串,每个字符串对应一个逻辑视图每个字符串对应一个逻辑视图当动作类继承了当动作类继承了ActionSupport后,通常使后,通常使用以下一些用以下一些常量常量作为动作执行后的返回值:作为动作执行后的返回值:INPUT、SUCCESS、LOGIN、NONE和和ERROR常量返回值含义:常量返回值含义:ERROR:表示动作类执行不成功:表示动作类执行不成功SUCCESS:表示动作类执行成功,并将:表示动作类执行成功,并将由相关的由相关的JSP文件显示结果文件显示结果LOGIN:表示需要先登录才可以执行动作:表示需要先
5、登录才可以执行动作INPUT:表示需要先输入数据才能执行动:表示需要先输入数据才能执行动作作NONE:表示动作类执行成功,但不显示:表示动作类执行成功,但不显示结果结果2.在在struts.xml中定义动作包和动作中定义动作包和动作属性属性说明说明name定义动作包的名字,唯一性定义动作包的名字,唯一性namespace定义动作包的运行路径定义动作包的运行路径extends定义继承的父动作包定义继承的父动作包 定义动作包定义动作包:使用:使用package标记,可以包标记,可以包含多个动作,常用属性如下含多个动作,常用属性如下:例如:例如:在在url中跟在中跟在虚拟目录后面虚拟目录后面 例如:
6、例如:定义动作:定义动作:使用使用action标记标记,在动作标在动作标记内包含子标记定义结果、异常等内容,记内包含子标记定义结果、异常等内容,常用属性如下:常用属性如下:属性属性说明说明name指定客户端发送请求的地址映射名称指定客户端发送请求的地址映射名称class指定进行业务逻辑处理的动作类全限定性名称指定进行业务逻辑处理的动作类全限定性名称method指定动作类中进行业务逻辑处理的具体方法名称指定动作类中进行业务逻辑处理的具体方法名称 例如:例如:/input.jsp /welcome.jsp 定义动作结果:定义动作结果:使用使用result标记标记,可以在一可以在一个个标记对中使用一
7、个或多个标记对中使用一个或多个result标记为动作指定一个或多个视图,常用属性如下:标记为动作指定一个或多个视图,常用属性如下:属性属性说明说明name定义结果的定义结果的逻辑视图逻辑视图名字名字type指定视图页面所采用的视图技术或结果类型指定视图页面所采用的视图技术或结果类型与动作类与动作类的返回值的返回值一致一致常用结果类型常用结果类型:属性属性说明说明type常用常用结果结果类型类型dispatcher:默认结果类型,表示使用的视图技术是默认结果类型,表示使用的视图技术是JSP,将请求转发给视图页面,将请求转发给视图页面redirect:重定向到视图页面,参数不能传递重定向到视图页面
8、,参数不能传递redirectAction:动作转向结果类型,表示将访问转动作转向结果类型,表示将访问转到其他动作到其他动作chain:动作链结果类型,表示请求将转到一系列的其动作链结果类型,表示请求将转到一系列的其他动作进行处理他动作进行处理freemark:表示使用表示使用freemark视图技术视图技术2.2 在在Struts2项目中应用控制组件项目中应用控制组件步骤:步骤:创建创建web项目项目将将Struts2类包中的类包中的commons-logging-1.0.4.jar、freemarker-2.3.15.jar、commons-fileupload-1.2.1.jar、ogn
9、l-2.7.3.jar、struts2-core-2.1.8.1.jar、xwork-core-2.1.6.jar添加到工程的构造路径添加到工程的构造路径中中步骤:(接上)步骤:(接上)在在web.xml文件中设置核心控制器文件中设置核心控制器创建一个扩展创建一个扩展com.opensymphony.xwork2.ActionSupport的动作类,保存目录为的动作类,保存目录为action创建结果显示创建结果显示JSP文件,保存目录为文件,保存目录为WebRoot创建创建struts.xml,在其中定义动作包、,在其中定义动作包、动作等内容,保存目录为动作等内容,保存目录为src示例一示例一
10、:动作包的动作对应单个结果动作包的动作对应单个结果在在web.xml中设置核心控制器中设置核心控制器:创建一个扩展创建一个扩展ActionSupport的动作类的动作类创建一个结果显示创建一个结果显示JSP文件:文件:创建创建struts.xml:属性属性name和和type值分别是值分别是什么?什么?执行结果:执行结果:action表表示什么?示什么?示例二示例二:动作包的动作对应多个结果动作包的动作对应多个结果创建步骤参见示例一。创建步骤参见示例一。创建一个扩展创建一个扩展ActionSupport的动作类:的动作类:创建六个结果显示创建六个结果显示JSP页面页面创建创建struts.xm
11、l:执行结果:执行结果:2.3 执行动作中不同的方法执行动作中不同的方法方法一:方法一:通过通过在在struts.xml中的每个动作中指中的每个动作中指定执行的业务逻辑方法定执行的业务逻辑方法来处理不同情况下的请求。来处理不同情况下的请求。例如例如:方法二:使用方法二:使用通配符通配符。通过在通过在struts.xml中中使用通配符可以在不同请求情况下执行不同动使用通配符可以在不同请求情况下执行不同动作方法。例如作方法。例如:思考题思考题struts2的控制组件包括哪两种类型的控制组件包括哪两种类型?创建业务控制器的步骤有哪些?创建业务控制器的步骤有哪些?动作类如何获取客户端传来的数据?动作类如何获取客户端传来的数据?客户端又是如何访问动作类的属性值客户端又是如何访问动作类的属性值?动作类的常用的常量返回值有哪些?动作类的常用的常量返回值有哪些?动作类默认执行的方法名是什么?动作类默认执行的方法名是什么?配置配置struts.xml包括哪些基本内容包括哪些基本内容?如何实现一个动作对应多个结果?如何实现一个动作对应多个结果?动作类中定义了多个业务方法,根据动作类中定义了多个业务方法,根据不同的客户端请求,执行不同的业务不同的客户端请求,执行不同的业务方法,请问该如何实现此需求?方法,请问该如何实现此需求?动作执行的结果类型哪些?动作执行的结果类型哪些?