第4章Struts2输入校验课件

上传人:1ta3****9ta1 文档编号:245187543 上传时间:2024-10-07 格式:PPT 页数:24 大小:354.50KB
返回 下载 相关 举报
第4章Struts2输入校验课件_第1页
第1页 / 共24页
第4章Struts2输入校验课件_第2页
第2页 / 共24页
第4章Struts2输入校验课件_第3页
第3页 / 共24页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,无限挑战 无限飞翔,Struts 2,框架应用教程,清华大学出版社,无限挑战 无限飞翔,Struts 2,框架应用教程,清华大学出版社,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,无限挑战 无限飞翔,Struts 2,框架应用教程,清华大学出版社,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,无限挑战 无限飞翔,Struts 2,框架应用教程,清华大学出版社,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,无限挑战 无限飞翔,Struts 2,框架应用教程,清华大学出版社,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,无限挑战 无限飞翔,Struts 2,框架应用教程,清华大学出版社,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,无限挑战 无限飞翔,Struts 2,框架应用教程,清华大学出版社,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,无限挑战 无限飞翔,Struts 2,框架应用教程,清华大学出版社,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,无限挑战 无限飞翔,Struts 2,框架应用教程,清华大学出版社,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,无限挑战 无限飞翔,Struts 2,框架应用教程,清华大学出版社,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,无限挑战 无限飞翔,Struts 2,框架应用教程,清华大学出版社,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,无限挑战 无限飞翔,Struts 2,框架应用教程,清华大学出版社,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,第4章Struts2输入校验,第4章Struts2输入校验第4章Struts2输入校验7.1 输入校验概述输入校验分为客户端校验和服务器端校验,客户端校验主要是过滤正常用户的误操作,主要通过JavaScript代码完成;服务器端校验是整个应用阻止非法数据的最后防线,主要通过在应用中编程实现。,7.1.1 客户端校验,7.1.2 服务端校验,7.1 输入校验概述,输入校验分为客户端校验和服务器端校验,客户端校验主要是过滤正常用户的误操作,主要通过,JavaScript,代码完成;服务器端校验是整个应用阻止非法数据的最后防线,主要通过在应用中编程实现。,7.1.1,客户端校验,7.1.2,服务端校验,7.1.1 客户端校验,大多数情况下,使用,JavaScript,进行客户端校验的步骤如下:,编写校验函数,在提交表单的事件中调用校验函数,根据校验函数来判断是否进行表单提交,7.1.2,服务端校验,服务器端校验对于系统的安全性、完整性、健壮性起到了至关重要的作用。,Struts 2,框架是非常强大的,它提供了一套验证框架,通过验证框架能够非常简单和快速地完成输入校验。,在服务器端,对于输入校验,Struts 2,提供了两种实现方法:,一是采用手工编写代码实现(手工编程),二是基于,XML,配置方式实现(,Struts 2,校验框架),。,7.2,手动编程校验,手动编程主要是通过在类中编写校验逻辑代码,有两种实现方式:,一是在,Action,类中重写,validate(),方法,,,二是在,Action,类中重写,validateXxx(),方法,。,7.2.1,重写,validate(),方法,validate(),方法会校验,Action,中所有与,execute,方法签名相同的方法。当某个数据校验失败时,在,validate(),方法中应该调用,addFieldError(),方法往系统的,fieldErrors,添加校验失败信息。,为了使用,addFieldError(),方法,,Action,类需要继承,ActionSupport,。,如果系统的,fieldErrors,包含失败信息,,Struts 2,会将请求转发到名为,input,的,result,。在,input,视图中可以通过,标签显示失败信息。,下面通过一个简单示例讲解如何重写,validate(),方法进行输入校验。,7.2.2,重写,validateXxx(),方法,validateXxx(),只会校验,Action,中方法名为,Xxx,的方法,其中,Xxx,的第一个字母要大写。重写,validateXxx(),方法进行输入校验与重写,validate(),方法基本一样,唯一不同的就是校验的方法名不同而已。,如果将,7.2.1,节中的示例改成重写,validateXxx(),方法进行输入校验,则需要修改,Action,类和配置文件。,7.2.3,输入校验的流程,1,类型转换器对请求参数执行类型转换,并把转换后的值赋给,Action,中的属性。,2,如果在执行类型转换的过程中出现异常,系统会将异常信息保存到,ActionContext,,,conversionError,拦截器将异常信息添加到,fieldErrors,里。不管类型转换是否出现异常,都会进入第,3,步。,3,系统通过反射技术先调用,Action,中的,validateXxx(),方法,,Xxx,为方法名。,4,再调用,Action,中的,validate(),方法。,5,经过上述,4,个步骤,如果系统中的,fieldErrors,存在错误信息(即存放错误信息的集合的,size,大于,0,),系统自动将请求转发至名称为,input,的视图。如果系统中的,fieldErrors,没有任何错误信息,系统将执行,Action,中的处理方法。,7.2.4,实践环节,编写,JSP,页面,practice724.jsp,,通过重写,validate(),方法对该,JSP,页面的输入项进行校验。要求如下:,1,所有输入项不能为空。,2,年龄必须在,18,至,65,岁之间。,3,Email,满足正常的格式。,4,JSP,页面的运行效果如图,7.3,所示。,7.3,校验框架校验,使用,Struts 2,校验框架的好处是将校验逻辑放到配置文件中,实现校验逻辑代码与业务逻辑代码的分离。使用基于校验框架校验方式实现输入校验时,,Action,也需要继承,ActionSupport,,并且提供校验文件。同样框架校验的方式也有两种:,一是校验,Action,中所有与,execute,方法签名相同的方法;二是校验,Action,中某个与,execute,方法签名相同方法。,7.3.1 Struts 2,内置的校验器,Struts 2,提供了许多的默认校验器。在开发中使用内置校验器能满足大部分的校验需求。这些校验器的定义可以在,xwork-2.x.jar,中的,com.opensymphony.xwork2.validator.validators,下的,default.xml,中找到。,7.3.2,常用内置校验器的配置,对于,Struts 2,校验框架来说,一般有两种方式来配置校验器:,使用,使用,当,的子节点中配置了,用于指定对某个属性进行校验时,则达到的效果与,是一样的,例如校验,user.id,属性时想使用,来配置,那么写法如下:,user.id,用户,ID,不能为空!,如果使用,配置校验,user.id,属性时,写法如下:,用户,ID,不能为空!,required,(必填校验器),性别不能为空,!,requiredstring,(必填字符串校验器),true,用户名不能为空,!,stringlength,(字符串长度校验器),12,6,密码必须在,6-12,位之间,email,(邮件地址校验器),邮箱格式不正确,regex,(正则表达式校验器),手机号格式不正确,!,int,(整数校验器),100,0,年龄必须为,0-100,字段,OGNL,表达式校验器,文件不能为空,7.3.3,校验,Action,中所有与,execute,签名相同的方法,基于校验框架方式实现对,Action,的所有与,execute,签名相同的方法进行输入校验,校验文件和,Action,类放在同一个包下,文件的取名格式为:,ActionClassName-validation.xml,,其中,ActionClassName,为,Action,的简单类名,,-validation,为固定写,法。,下面使用该校验方式对,7.2.4,实践环节的,JSP,页面,practice724.jsp,的输入项进行校验,校验要求与,7.2.4,节一样。具体步骤如下:,1,创建,JSP,页面,practice724733.jsp,,该页面与,practice724.jsp,页面完全一样,唯一不同的就是表单的,action,属性值。该页面的,action,属性值,practice724733.action,。,2,创建,Action,类,Practice724733Action.java,3,在,action,包下编写校验文件,Practice724733Action-validation.xml,4,配置,Action,5,校验显示效果,7.3.4,校验,Action,中某个与,execute,签名相同的方法,如果只需要对,Action,中的某个,Action,方法实施校验,那么校验文件的取名应为:,ActionClassName-ActionName-validation.xml,,其中,ActionName,为,struts.xml,中,Action,的名称。该校验方式与,7.3.3,校验方式唯一不同的就是校验文件的命名不同,校验文件也是和,Action,类在同一个目录中。,例如:,ManageGoodsAction,中有,add,和,update,方法,需要对,add(),方法实施验证时,校验文件的取名为:,ManageGoodsAction-addGoods-validation.xml,需要对,update(),方法实施验证时,校验文件的取名为:,ManageGoodsAction-updateGoods-validation.xml,7.3.5,校验文件搜索顺序,当为某个,Action,既提供了,ActionClassName-validation.xml,校验文件,又提供了,ActionClassName-ActionName-validation.xml,校验文件时,系统将按照下面顺序寻找校验文件:,AconClassName-validation.xml,ActionClassName-ActionName-validation.xml,系统寻找到第一个校验文件时还会继续搜索后面的校验文件,当搜索到所有校验文件时,会将校验文件里的所有校验规则汇总,然后全部应用于,Action,方法的校验。如果两个校验文件中指定的校验规则冲突,则只使用后面文件中的校验规则。,当某个,Action,继承了另一个,Action,,父,Action,的校验文件将会先被搜索到。假设,ManageGoodsAction,继承,BaseAction,。,访问上面,Action,(,val_add,)时,系统将会先搜索父类,BaseAction,的校验文件:,BaseAction-validation.xml,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!