第15章struts2校验机制.docx
- 文档编号:23988059
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:50
- 大小:117.67KB
第15章struts2校验机制.docx
《第15章struts2校验机制.docx》由会员分享,可在线阅读,更多相关《第15章struts2校验机制.docx(50页珍藏版)》请在冰豆网上搜索。
第15章struts2校验机制
输入校验
一、Struts2校验机制
Struts2框架提供了优秀的校验机制,它们可以分为3部分:
(1)内置校验器,对web应用开发中常见的校验功能进行了封装
(2)校验规则声明,允许开发人员通过XML配置文件或者JavaAnnoation来引用内置校验器定义输入校验规则
(3)校验拦截器,框架通过拦截器validation和workflow来实现对输入信息的校验工作。
Validation拦截器根据校验规则声明调用内置拦截器实现校验工作,并负责维护创建一个字段相关的错误信息列表,workflow负责检查此错误信息列表,如果存在错误信息,则返回Action组件相关的input结果视图,并在返回的视图中显示相关的错误信息。
此外还支持开发人员定义自己的校验器。
类型转换和输入校验是Struts2框架对客户端提交信息进行处理的两个阶段。
客户端提交的信息首先进行类型转换,不管是否在转换过程中出现异常,都将进入输入校验阶段。
只有在类型转换和输入校验没有任何错误的情况下才会进入Action组件的业务逻辑处理。
二、利用Struts2框架实现校验
【例子】
【Quiz.jsp】
<%@pagecontentType="text/html"pageEncoding="UTF-8"%>
<%@taglibprefix="s"uri="/struts-tags"%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"
"http:
//www.w3.org/TR/html4/loose.dtd">
你喜欢的笔记本品牌
fielderror/> formaction="basicValidate"method="post"namespace="/validate"> textfieldname="name"label="姓名"/> textfieldname="age"label="年龄"/> textfieldname="answer"label="笔记本品牌"/> submitvalue="提交"/> form> 【Quiz_success.jsp】 <%@pagecontentType="text/html"pageEncoding="UTF-8"%> <%@taglibprefix="s"uri="/struts-tags"%> <%@pageisELIgnored="false"%> DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN" "http: //www.w3.org/TR/html4/loose.dtd"> 谢谢! propertyvalue="name"/> 你喜欢的笔记本品牌是: propertyvalue="answer"/> 【QuizAction.java】 packagemy.ognl; importcom.opensymphony.xwork2.ActionSupport; publicclassQuizActionextendsActionSupport{ privateStringname; privateintage; privateStringanswer; publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ this.name=name; } publicintgetAge(){ returnage; } publicvoidsetAge(intage){ this.age=age; } publicStringgetAnswer(){ returnanswer; } publicvoidsetAnswer(Stringanswer){ this.answer=answer; } } 【QuizAction-validation.xml】 xmlversion="1.0"encoding="UTF-8"? > DOCTYPEvalidatorsPUBLIC "-//ApacheStruts//XWorkValidator1.0.2//EN" "http: //struts.apache.org/dtds/xwork-validator-1.0.2.dtd"> 【struts.xml】 class="my.ognl.QuizAction"method="execute"> 测试 地址栏输入 http: //localhost: 8080/example_ch1/Quiz.jsp 如果不输入姓名,年龄输入200,笔记本品牌输入IBM,得到的结果为 在与Action组件同样的package路径下寻找名为**-validation.xml的校验规则声明文件,其中**代表Action组件的名称。 对于实现了输入校验的Action组件,必须定义一个名为input的Result视图,当框架调用校验器执行校验失败时,将返回此Result视图。 三、Struts2内置校验器 位于xwork-2.0.4.jar压缩包中( com.opensymphony.xwork2.validator.validators)有个文件default.xml ,该文件中定义了Struts2框架内建的校验器。 default.xml文件定义了常用的校验器类型。 四、校验器配置 字段校验器: 判断某个字段属性的输入是否有效 非字段校验器: 不是针对某个字段,而是针对多个字段的输入值之间的逻辑关系进行校验 相应的,Struts2内置校验器也就有两种配置风格,一种是字段校验风格,一种是非字段校验风格。 1、必填校验器,指定字段不允许为空: (1)非字段校验: (2)字段校验: 2、必填字符串校验器,字段值必须非空且长度大于0: (1)非字段校验: (2)字段校验: ∙trim: 可选参数,用于指定是否在校验之前对字符串进行整理,默许为true。 3、字符串长度校验器,要求被校验的字段长度必须在指定范围之内: (1)非字段校验: (2)字段校验: 4、整数校验器,整数值在指定的范围内: (1)非字段校验: (2)字段校验: 5、日期校验器,要求日期在指定范围内 (1)非字段校验: (2)字段校验: ∙min: 指定字段日期值的最小值,该参数为可选参数。 ∙max: 指定字段日期值的最大值,该参数为可选参数。 6、浮点数值校验器: (1)非字段校验: (2)字段校验: ∙minInclusive|minExclusive: 指定字段的最小值,包含该值|不包含该值。 ∙maxInclusive|maxExclusive: 指定字段的最大值, 包含该值|不包含该值。 7、表达式校验器,要求满足指定的表达式要求: ∙expression: 该参数为一个逻辑表达式,该参数使用OGNL表达式,并基于值栈计算,返回一个Boolean类型值。 8、字段表达式校验器,要求指定字段值满足表达式要求: (1)非字段校验: [CDATA[#myCreditLimit>#myGirfriendCreditLimit]]> (2)字段校验: [CDATA[#myCreditLimit>#myGirfriendCreditLimit]]> 9、邮件地址校验器,有效的邮件地址 (1)非字段校验: (2)字段校验: 10、网址校验器,指定字段是否是有效的URL地址: (1)非字段校验: (2)字段校验:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 15 struts2 校验 机制