第7讲:Action结果处理与组织.ppt

上传人:b****2 文档编号:2501517 上传时间:2022-10-30 格式:PPT 页数:23 大小:808.50KB
下载 相关 举报
第7讲:Action结果处理与组织.ppt_第1页
第1页 / 共23页
第7讲:Action结果处理与组织.ppt_第2页
第2页 / 共23页
第7讲:Action结果处理与组织.ppt_第3页
第3页 / 共23页
第7讲:Action结果处理与组织.ppt_第4页
第4页 / 共23页
第7讲:Action结果处理与组织.ppt_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

第7讲:Action结果处理与组织.ppt

《第7讲:Action结果处理与组织.ppt》由会员分享,可在线阅读,更多相关《第7讲:Action结果处理与组织.ppt(23页珍藏版)》请在冰豆网上搜索。

第7讲:Action结果处理与组织.ppt

1高扬高扬高扬高扬tel:

13838109649email:

tel:

13838109649email:

第第7讲:

讲:

Action结果处理与组织结果处理与组织3.5Action3.5Action3.5Action3.5Action的处理结果的处理结果的处理结果的处理结果3.6Action3.6Action3.6Action3.6Action的组织的组织的组织的组织温故温故n要点回顾:

u动态方法调用:

一个Action中定义多个业务方法,在请求时采用“action名!

业务方法名”的形式u定义逻辑Action:

为每一个业务方法定义一个逻辑的Action,定义Action时指明method属性u在配置中使用通配符:

通过使用通配符,简化Action配置本讲要点与教学目标本讲要点与教学目标【教学要点教学要点教学要点教学要点】1、结果视图基础知识、结果视图基础知识2、Action的组织的组织【教学目标教学目标教学目标教学目标】了解结果视图的种类,掌握全局结果视图的定义了解结果视图的种类,掌握全局结果视图的定义与使用,了解与使用,了解Action的管理思想,掌握的管理思想,掌握定定义与应用技巧义与应用技巧。

结果视图基础知识结果视图基础知识【结果视图种类结果视图种类】结果视图的类型有多种,可以通过type属性进行说明,缺省时的类型为dispatcher(其它类型后续章节中介绍):

dispatcher类型的结果视图,是采取服务器端分发模式,将当前的请求转发到一个将当前的请求转发到一个JSP网页网页,这种方式可以将请求资请求资源源进行传递,与资源重定向不同。

ActionActionJSPJSP11、请请求求1133、请请求求2244、响响应应2222、响响应应11ActionActionJSPJSP11、请请求求1122、请请求求1+1+处处理理结结果果33、响响应应11【资源重定向资源重定向】【请求转发请求转发】案例案例11:

dispatcher类型结果视图的特点【案例说明案例说明】请求转发的特点是将客户端发送的请求进行处理后传递给下一个应用程序,因此请求中的参数和属性都可以传递给目标应用程序,在目标应用程序中即可以获取客户端的请求参数,也可以获取上一个应用程序中设置的请求对象的属性。

【操作步骤操作步骤】1、请求属性请求属性传递:

以案例demo5-3(使用Web元素)为基础,登录成功后,修改地址栏直接请求success.jsp,观察结果。

2、请求参数请求参数传递:

在登录成功页中获取请求参数并输出:

结果视图基础知识结果视图基础知识【全局结果视图全局结果视图】一般来说,在struts.xml中result是从属于action进行定义的,是局部的,但有些时候多个多个ActionAction处理后可能要处理后可能要返回同一个结果视图返回同一个结果视图,此时就需要定义全局的结果视图。

【定义方法定义方法】在元素内,所有定义之前使用元素进行定义案例案例11:

全局结果视图的应用:

全局结果视图的应用【案例步骤案例步骤】1、以demo6-3(一个Action处理多个业务)为基础,在Action登录和注册方法中分别加入程序出错的处理(如:

当用户输入的用户名超过6个字符时返回ERROR)2、在struts.xml中填加全局result定义3、在项目中创建网页error.jspActionAction的组织的组织【Action管理问题管理问题】1、如何管理不同模块中同名的Action?

2、如何以模块为单位组织Action?

package(包)在Java中用于管理同名的类或将类按照不同的功能模块进行组织,同样,在Action的管理中package也起到相同的作用。

使用package可以将逻辑上相关的一组Action、Result、Intercepter等组件分为一组。

packagepackage的属性的属性npackage的属性uname:

必填属性,用来指定包的名称,一般与对应模块名称相同uextends:

可选属性,用来指定从哪个package继承,可以继承其他包中的Action定义和拦截器定义unamespace:

可选属性,用来指定该包的命名空间案例案例33:

extendsextends属性的应用属性的应用n创建JSP网页,分别创建如下页面,设置相应内容uindex.jspuindex2.jsputest.jsputest1.jsputest2.jspn在struts.xml中进行如下定义案例案例33:

extendsextends属性的应用属性的应用【struts.xml中的定义中的定义】案例案例33:

extendsextends属性的应用属性的应用案例案例33:

extendsextends属性的应用属性的应用n分析nameextendsnamespaceactionjsp文件文件default默认indexindex.jsptest默认/whotest.jsptest1默认/test1whoindextest1.jspindex2.jsptest2test1/test2whotest2.jsptest3test1/test3案例案例33:

extendsextends属性的应用属性的应用【测试测试】请求请求-响应视图响应视图/index-index.jsp/aaa/index-index.jsp/test1/index-index2.jsp/test1/aaa/index-index2.jsp/test2/index-index2.jsp/test2/aaa/index-index2.jsp/test3/index-index2.jsp/test3/aaa/index-index2.jsp/who-test.jsp/aaa/who-test.jsp/test1/who-test1.jsp/test1/aaa/who-test1.jsp/test2/who-test2.jsp/test2/aaa/who-test2.jsp/test3/who-test1.jsp/test3/aaa/who-test1.jsp奇怪奇怪案例案例33:

extendsextends属性的应用属性的应用【说明说明】nAction请求匹配过程总结http:

/localhost:

8080/action5http:

/localhost:

8080/action5/aaa/aaa/bbb/bbb/xxx.action/xxx.action

(1)首先匹配命名空间为/aaa/bbb的包中的xxx

(2)匹配命名空间为/aaa/bbb的父包中的xxx(3)匹配命名空间为/aaa的包中的xxx(4)匹配命名空间为/aaa的父包中的xxx(5)匹配命名空间为/的包中的xxx(6)匹配命名空间为/的父包中的xxx(7)匹配命名空间为,即缺省命名空间的包中的xxxnstruts.xml是自上而下解析的,被继承的package要放在继承package的前面定义组织组织ActionAction时的注意事项时的注意事项n不要将业务组件Action放在默认namespace的包中,它有可能被其他命名空间下的错误请求调用n将业务相关的Action组件放到同一个package内,便于共享相同资源包括全局Result和拦截器n一般结果视图中的URL使用绝对路径uAction组件所在的包的命名空间是结果视图中定义的相对路径的上级资源路径,相对路径的引用容易造成引用的混乱。

阶段总结阶段总结【创建创建Struts2Struts2支持支持WebWeb应用应用】1、创建Web项目,选择J2EE版本为JavaEE5.0JavaEE5.02、添加Struts2支持

(1)拷贝Struts2核心组件的jar包到项目的lib中

(2)在web.xml中配置Struts2的核心控制器3、创建相应的Action模型组件,创建JSP视图4、在src根目录下创建struts.xml(一般使用Copy改),配置Action及Result阶段总结阶段总结【ActionAction的创建的创建】1、直接创建2、实现Action接口3、继承ActionSupport(推荐使用)【要点要点】1、了解Action接口的定义

(1)常量标识符的声明

(2)业务方法execute()的声明2、了解ActionSupport类中业务方法的实现3、常量标识符的使用阶段总结阶段总结【ActionAction中获取请求参数中获取请求参数】1、基于Action属性的请求参数自动填充

(1)简单属性,如String、Date、int、float类型直接填充

(2)复杂属性,如JavaBean(数据模型)2、基于模型驱动的请求参数自动填充

(1)Action中实现ModelDriven接口

(2)Action中声明模型变量并初始化(3)ModelDriven接口的实现方法中返回模型对象阶段总结阶段总结【ActionAction中获取中获取WebWeb元素元素】1、基于容器的Web元素获取

(1)基于ActionContext获取Map类型的Web元素

(2)基于ServletActionContext获取真实类型Web元素2、基于框架注入的Web元素获取

(1)Action实现XxxAware接口

(2)Action中声明Map类型变量(3)XxxAware接口的实现方法中为Map类型变量赋值(4)通过put/get方法设置/获取Web元素的属性阶段总结阶段总结【一个一个ActionAction中处理多个业务中处理多个业务】首先一个Action中可定义多个业务方法,然后通过在struts.xml中的配置及Action请求方式的约定去实现指定业务方法的调用。

【struts.xmlstruts.xml配置与配置与ActionAction调用的三种方式调用的三种方式】

(1)动态方法调用(DMI):

action!

method

(2)逻辑Action定义:

method属性(3)使用通配符简化action配置阶段总结阶段总结【struts.xmlstruts.xml配置文件配置文件】1、格式规定

(1)一个struts.xml只有一个struts元素

(2)一个struts内可以有多个name不同的package(3)一个package内可以有多个name不同action(4)一个action内可以有多个name不同的result2、缺省项

(1)package缺省namespace为

(2)action缺省class为ActionSupport(3)result缺省name为success3、包的定义extends,指定从哪个包继承,可继承父包中定义的资源作业作业n创建Struts2框架支持的用户登录系统,要求连接数据库,实现数据库支持的登录验证业务。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 互联网

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1