ImageVerifierCode 换一换
格式:PPT , 页数:30 ,大小:482KB ,
资源ID:7929106      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-7929106.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(strut讲义 Struts4.ppt)为本站会员(gnk289057)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

strut讲义 Struts4.ppt

1、struts配置中的路径与模式匹配,struts配置中的action,有一个path属性,它表明请求的URI 一般情况下,我们需要在配置文件中明确指定某个特定的URI,如path=“/user/add” 在一些大型应用中,如果能够制定一套严格的路径及其操作规范的话,我们可以利用path的路径模式匹配功能,来简化struts配置文件繁琐的编写工作量 假设有如下规范:,路径匹配规范示例,对user对象的所有处理Action,均需要以如下的路径进行访问: /user/add.do 处理用户添加的有关操作 /user/delete.do 处理用户删除的有关操作 /user/update.do 处理用户

2、更新的有关操作 所有操作(Action)对应的JSP如下: 所有操作成功(失败)之后的转向页面,有如下命名规范: /user/add.do - /user/add_success.jsp或/user/add_error.jsp /user/delete.do - /user/delete_success.jsp或/user/delete_error.jsp 所有操作的输入界面有如下命名规范: 添加操作 - /user/add_input.jsp 更新操作 - /user/update_input.jsp ,Action配置示例,Action配置解释,所有的/user/add.do请求,都将由U

3、serAction这个类来处理 在UserAction类中execute方法,都可以返回success/error/input等名称的ActionForward 注意:针对html:form元素,以下写法皆可或者另外1,针对网页form元素,参考以下写法另外2,如果Action的path配置成/add,则 ,Struts控制器内置Action类,DispatchAction ForwardAction IncludeAction,为什么使用DispatchAction,将上一次的加法器修改为支持加、减、乘、除的计算器,怎么做?,方案1: 创建4个Action,在页面中,通过JavaScript

4、控制提交到不同的Action Bean。方案2: 增加隐藏表单域,表示操作类型 ,在Action Bean中根据不同操作类型做不同处理。,为什么使用DispatchAction,两个方案: 方案1对每个操作都创建一个Action,系统规模变大时,容易混乱 方案2将相关操作组织在一个Action中,通过operate参数区分不同操作,但容易使Action中execute方法的代码过长,不易维护类似需求在企业应用系统中非常常见,怎样更简洁有效地实现这样的需求?,Struts提供了DispatchAction解决此类问题,Dispatch的运行原理,DispatchAction的魔力,Dispatc

5、hAction能够根据传入参数值自动选择Action中同名的方法执行,演示DispatchAction的使用,使用DispatchAction实现计算机器的步骤: 1、创建CalcAction,继承自DispatchAction 2、在CalcAction中创建加、减、乘、除四个方法 3、在struts-config.xml中配置CalcAction 4、编写页面代码,演示示例:使用DispatchAction实现计算器,怎样使用DispatchAction,使用DispatchAction实现计算器 1、创建CalcAction,父类为DispatchAction,无需execute方法2、

6、创建加、减、乘、除四个方法,方法签名如下:,public class CalcAction extends DispatchAction ,public class CalcAction extends DispatchAction public ActionForward doAdd(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) public ActionForward doSubtract( .) public ActionForward d

7、oMultiply ( .) public ActionForward doDivide( .) ,怎样使用DispatchAction,使用DispatchAction实现计算器 3、配置CalcAction4、页面代码, 加 减 .function doSubmit(opr)document.forms0.elements“operate“.value=opr;document.forms0.submit(); ,注意:配置Dispatch参数名,实用的页面编码技巧,需要熟练掌握,ForwardAction,有的时候你只是想要从一个页面或资源转换到另一个资源,在MVC/Model 2的架构

8、中,直接使用页面或资源的路径来叫用并不是一个好的主意,这会使得控制器没有机会处理相关的公共事宜。好的方法是应该透过控制器,使用ForwardAction可以帮您完成这个事情。 参见ForwardAction源代码,ForwardAction,当控制器使用ForwardAction时execute ()方法时,它会使用属性parameter所设定的路径进行forward的动作,一个设定ForwardAction的例子如下: 代码: ,Action配置中forward属性,forward属性和ForwardAction 使用forward进行页面跳转的配置方法如下 forward属性和Forard

9、Action在页面中使用时是没有区别的,并且在通常情况下struts对这两种形式的跳转的处理也是相同的.,IncludeAction,IncludeAction类页面中的动作或Servlet中的 RequestDispatcher的include()方法执行的功能一样的.在基于struts框架结构的应用中,最好不要在标记中直接引用另一个JSP页面,而是通过IncludeAciton来实现页面之间的引用。IncludeAction的配置 IncludeAction的使用和Forward基本相同,在页面中还可以通过标记来调用. ,Action配置中include属性,include属性和Inclu

10、deAction Struts也可以通过使用include属性来在Action的配置文件中直接定义被引用的页面.如 ,Struts 视图组件,MVC模式中的视图主要负责实现动态内容的显示。Struts中的视图主要由以下组件组成: JSP页面 HTML页面 JSP定制标记 JavaScript和样式表 多媒体文件 消息资源 ActionForm 其中ActionForm是Struts框架中的核心组件之一。,ActionForm Bean,当用户提交了HTML表单,Struts框架自动把表单数据组装到ActionForm Bean中。 ActionForm Bean中的属性和HTML表单中的字段一

11、一对应。 ActionForm Bean提供表单验证方法: validate() ActionForm Bean提供把属性重新设置为默认值的方法:reset() Struts框架中定义的ActionForm类是抽象的,必须在应用中创建它的子类,来存放具体的HTML表单数据。,ActionForm的作用域,两个作用域: Request Session,Scope属性,在Action映射配置中,Scope属性可以取值为:request或session Scope属性表示:Struts框架在将ActionForm对象(与目标Action匹配的ActionForm)传送到Action之前,会将Acti

12、onForm对象保存的位置 如:scope=“request”配置,将指示struts调用request.setAttribute(“ActionForm名称”,ActionForm对象)方法,将ActionForm对象保存到request。 其中,ActionForm名称与struts-config.xml配置中的ActionForm名称一致,如:,其中uploadForm就是其名称。 我们明白scope属性的意义之后,就可以利用struts的这些特性,来解决开发过程中的某些常见问题,ActionForm生命周期流程图,Reset方法,对于每个请求,控制器先调用ActionForm的rese

13、t方法进行属性初始化,然后将表单数据组装到ActionForm 。 如ActionForm 在“request”范围, reset方法不是很有必要 如ActionForm 在“session”范围, reset方法极为有用,一般此时用reset方法为属性初始化。,数据验证,Struts框架的数据验证可分为两种类型:表单验证和业务逻辑验证,在本例中,它们分别运用于以下场合: 表单验证(由ActionForm Bean处理):如果用户没有在表单中输入姓名,就提交表单,将生成表单验证错误 业务逻辑验证(由Action处理):如果用户在表单中输入的姓名为“Monster”,按照本应用的业务规则,不允许

14、向“Monster”打招呼,因此将生成业务逻辑错误。,HelloForm Bean的表单验证,public ActionErrors validate(ActionMapping mapping,HttpServletRequest request) ActionErrors errors = new ActionErrors();if (userName = null) | (userName.length() 1)errors.add(“username“, new ActionMessage(“hello.no.username.error“);return errors; ,消息类的类

15、框图,HelloForm Bean的表单验证流程,当用户提交了HTML表单,Struts框架自动把表单数据组装到ActionForm Bean中。 接下来Struts框架会调用ActionForm Bean的validate()方法进行表单验证。 如果validate()方法返回的ActionErrors 对象为null,或者不包含任何ActionMessage对象,就表示没有错误,数据验证通过。 如果ActionErrors中包含ActionMessage对象,就表示发生了验证错误,Struts框架会把ActionErrors对象保存到request范围内,然后把请求转发到恰当的视图组件,视图组件通过标签把request范围内的ActionErrors对象中包含的错误消息显示出来,提示用户修改错误。,使用动态Form简化开发,大量的“纯体力” 代码充斥其中,当业务需要,增减数据库字段时,需要修改的地方过多,容易漏改出错,有哪些办法可以解决这种问题呢?,使用动态Form简化开发,使用动态Form实现用户登录,以配置的方式创建Form,从动态Form中取值,总结,使用DispatchAction有哪些好处?使用DispatchAction的步骤是什么?使用动态Form的步骤是什么?,

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报