§4详解ActionFormValidate框架

上传人:w****i 文档编号:92281307 上传时间:2019-07-08 格式:PPT 页数:18 大小:339.50KB
返回 下载 相关 举报
§4详解ActionFormValidate框架_第1页
第1页 / 共18页
§4详解ActionFormValidate框架_第2页
第2页 / 共18页
§4详解ActionFormValidate框架_第3页
第3页 / 共18页
§4详解ActionFormValidate框架_第4页
第4页 / 共18页
§4详解ActionFormValidate框架_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《§4详解ActionFormValidate框架》由会员分享,可在线阅读,更多相关《§4详解ActionFormValidate框架(18页珍藏版)》请在金锄头文库上搜索。

1、2019/7/8,1,详解ActionForm,2019/7/8,2,ActionForm高级应用1: ActionForm的scope, 现在我们来考虑scope的意思 首先在ActionForm内增加一个构造函数,在reset函数内和构造函数内增加一个标记,修改scope,我们来看一下结果 结论:scope=request:每次提交都会新生成一个ActionForm对象;scope=session:在一次会话中,生成一个ActionForm对象,保存在session内,以后就不生成了,在session中取得 在scope=session时,一定要注意reset的用法,2019/7/8,3,

2、ActionForm高级应用2:表单跨页,有两个表单,第一个表单输入账号密码,提交,到下一个表单输入住址,电话,要求将这些内容在一个ActionForm里面保存。 1:建立ActionForm,生成p1,p2 2:配置一个forwardAction,指向ActionForm,跳转到p2,让p1提交给它 3:配置另一个Action,指向同一个ActionForm,让p2提交给它 4:注意:scope应该等于session,2019/7/8,4,ActionForm高级应用3: 动态ActionForm,过多的ActionForm会让系统庞大,怎样解决? 能否不编写ActionForm? 可以,但

3、是表单就要用传统表单了。 (1)建立动态ActionForm (2)用DynaActionForm.get方法使用动态ActionForm,2019/7/8,5,但是这样带来一个缺陷:验证功能失去了,前端验证两种方案:1:ActionForm验证2: Validate框架验证 Validate框架可以解决这个问题 Validate框架的要点:将验证的工作写在XML文件中 这有一个好处,比如很多表单都要验证输入不能为空,传统方法需要在每个ActionForm中写if语句,相当于同样的语句分散在项目的很多地方,现在有了这个XML文件,只需要写一次就好了,2019/7/8,6,怎样做?,首先,你的项

4、目中必须有两个jar文件 jakarta-oro.jar:处理文本 commons-validator.jar:提供验证功能 一个系统提供的文件:validator-rules.xml 这个文件中定义了我们项目中可能出现的所有要验证的规则,这是Struts自己定义的,以后你只要在另一个XML文件中调用就可以了,2019/7/8,7,介绍validator-rules.xml,包含了一些通用验证规则,对所有struts应用都适用,一般情况下,没有必要改变这个文件。 required 不能为空 validwhen 条件验证 minlength 最小长度 maxlength 最大长度 mask 正则

5、表达式 double 是否是double integer 是否是整数 date 是否是日期 intRange 整数范围 doubleRange double范围 email 是否是email,2019/7/8,8,练习:,注册界面,输入姓名,email,电话,要求: 姓名不能为空,email必须合法,电话必须是数字,否则显示相应错误信息,2019/7/8,9,步骤,1:建立validator-rules.xml和validation.xml 2:将这两个文件作为插件存入struts配置文件,在struts配置文件最后加上: ,2019/7/8,10,步骤,编写JSP,ActionForm,Ac

6、tion,注意,此时,ActionForm应该继承org.apache.struts.validator.ValidatorForm,或者是org.apache.struts.validator.DynaValidatorForm 然后你就可以在validation.xml内写验证规则了,2019/7/8,11,validation.xml,需要由开发人员自己建立 目的是调用validator-rules文件 你可以将validator-rules.xml的DTD声明拷贝过来,便于开发 怎样写? 1:所有的规则写在中 2:在中可以定义,里面包含各个表单的检查,2019/7/8,12,valid

7、ation.xml,3:对表单的检查,格式如下: 注意,field可以写多个,表示对多个属性进行验证,当规则用到多个,msg也可以写多个,2019/7/8,13,高级验证话题1:设定单个验证门限,要知道,并不是所有的验证只是“是”或者“否”的验证,比如,在确定电话号码的最小长度时,你需要设定最小长度是7,怎么做? 方法:在中定义: 规则名称 值 ,2019/7/8,14,高级验证话题2:设定多个验证门限,如果要确定输入的分数是在0-100之间怎么办? 方法:在中增加depends=intRange,定义: max 100 min 0 ,2019/7/8,15,高级验证话题3:设定条件验证门限,

8、如果要确定输入的密码和确认密码要相等怎么办? 方法:在中增加validwhen,定义: test (前一个属性 = *this*) ,2019/7/8,16,高级验证话题4:怎样传参数?,怎样向msg中传递参数? 常见的办法:用变量传递参数 ,2019/7/8,17,返璞归真,如果你想在ActionForm内做验证,但是想要做一些比较复杂的验证,如email是否合法,我们推荐你用一个类: mons.validator.GenericValidator 里面有很多静态方法可以供你使用,2019/7/8,18,需要大家自己去掌握的问题,1:可以用正则表达式来规定一些东西,如输入账号时,规定不能以数字开头,怎么办?正则表达式:请大家去参考http:/jakata.apache.org/regexp/index.html 2:如果自己想要定义一些验证规则,怎么作?,

展开阅读全文
相关资源
相关搜索

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

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