




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Ajax验证: RichFaces组件库提供了三个组件,用于用户输入数据的验证。这些组件利用Ajax支持增加了JSF验证能力,并且可以使用Hiberate验证器。一、l 描述从3.2.2版开始可用,是一个组件,旨在为JSF输入提供内部Ajax验证。l 关键功能l 除了验证之外,跳过所有JSF处理。l 可以使用标准和定制验证。l 可以使用Hiberate验证。l 基于事件触发验证。l 使用细节组件应该作为一个子组件被添加到一个数据应该被验证的JSF输入标签,并且触发验证的事件也应该被指定。默认时,该组件是单Ajax的,所以只有当前的字段会被验证。如下图:l 属性说明属性名称说明evet表示被验证组件在什么时候被验证,如:oblur,失去焦点时,发送验证请求ajaxListeerMethodExpressio represetig a actiolisteer method that will be otified whe thiscompoet is activated by the ajax Requestad hadle it. The expressio must evaluateto a public method that takes a AjaxEvetparameter, with a retur type of void. Defaultvalue is ull发送请求到actio中的方法,方法必须是公有的public,返回类型为void一般用途:?bidigThe attribute takes a value-bidig expressiofor a compoet property of a backig bealimitToList如果为true,则在页面上所有那些AJAX渲染的组件才会被更新,它的ID传递给组件可描述的reReder属性。默认值为false意味着所有使用ajaxRedered=true的组件会被更新。?l 例子演示了如何添加Ajax功能到标准的JSF验证器;当输入字段失去焦点时,请求被发送,动作由设置成oblur的evet属性确定。验证结果例子说明:上面的例子使用的是javax.faces.validator包中的JSF验证API(简单的标准jsf验证)、使用Hiberate,为验证的数据指定约束。有关Hiberate验证器的参考,请查看Hiberated的文档/hib_docs/validator/referece/e/html_sigle/,如下图:下面的例子显示了如何使用Hiberate验证器验证用户输入数据:. 下面是管理的bea的源代码:package org.richfaces.demo.validatio;import org.hiberate.validator.Email;import org.hiberate.validator.Legth;import org.hiberate.validator.Max;import org.hiberate.validator.Mi;import org.hiberate.validator.otEmpty;import org.hiberate.validator.otull;import org.hiberate.validator.Patter;public class ValidatioBea private Strig progressStrig=Fill the form please; otEmpty Patter(regex=.*s.*, message=This strig cotai oly spaces) Legth(mi=3,max=12) private Strig ame; Email otEmpty private Strig email; otull Mi(18) Max(100) private Iteger age; public ValidatioBea() /* Correspodig Getters ad Setters */ 默认时Hiberate验证器用10种语言(?)生成一个错误消息,虽然在验证失败时,你可以重新定义显示给用户的消息。上面的例子中,你可以添加(message=wrog email format)到Email注释来完成。(经试验无效)l 参考数据 属性表././tlddoc/idex.htmlrich/ajaxValidator.html。表6.19 组件关联的参数名字值compoet-typeorg.richfaces.ajaxVpoet.html.HtmlajaxValidatorcompoet-familyorg.richfaces.ajaxValidatorrederer-typeorg.richfaces.ajaxValidatorRederertag-classorg.richfaces.taglib.ajaxValidatorTagl 相关资源链接组件的用法和它们的资源的例子,请浏览在RichFaces Livedemo的AjaxValidator页面 : /richfaces-demo/richfaces/ajaxValidator.jsf?c=ajaxValidatorl 注代码必须包含在中,否则会报错如下二、l 描述从3.2.2版开始可用,组件旨在使用Hiberate基于模型的约束提供验证。l 主要功能使用Hiberate约束验证。l 使用细节从3.2.2 GA版开始, RichFaces提供支持,用于使用Hiberate验证器定义的基于模型的约束。因此,可以象基于应用程序的Seam一样使用Hiberate验证器。l 属性说明ameDetailsummary概要说明:一般描述表示验证那个组件l 例子组件以JSF验证器相同的方式被定义。如下所示: 请密切注意bea代码,它包含了使用Hiberate注释定义的约束,用于执行输入数据的验证。package org.richfaces.demo.validatio;import org.hiberate.validator.Email;import org.hiberate.validator.Legth;import org.hiberate.validator.Max;import org.hiberate.validator.Mi;import org.hiberate.validator.otEmpty;import org.hiberate.validator.otull;import org.hiberate.validator.Patter;public class ValidatioBea private Strig progressStrig=Fill the form please; otEmpty Patter(regex=.*s.*, message=This strig cotai oly spaces) Legth(mi=3,max=12) private Strig ame; Email otEmpty private Strig email; otull Mi(18) Max(100) private Iteger age; public ValidatioBea() /* Correspodig Getters ad Setters */ public void success() setProgressStrig(getProgressStrig() + (Strored successfully); public Strig getProgressStrig() retur progressStrig; public void setProgressStrig(Strig progressStrig) gressStrig = progressStrig; 下图显示了验证失败时的结果。图6.9 的用法正如你从例子中看见的一样,为了验证,应该被嵌套在一个输入JSF或RichFaces组件中。组件只有一个属性,summary,它显示有关验证错误的验证消息。l 参考数据属性表././tlddoc/idex.htmlrich/beaValidator.html。表6.20 组件关联的参数名字值compoet-typeorg.richfaces.beaVpoet.html.HtmlbeaValidatorcompoet-familyorg.richfaces.beaValidatorrederer-typeorg.richfaces.beaValidatorRederertag-classorg.richfaces.taglib.beaValidatorTagl 相关资源链接组件的用法和它们的资源的例子,请浏览在RichFaces Livedemo的页面 : /richfaces-demo/richfaces/beaValidator.jsf?c=beaValidator l 遗留问题三、l 描述从3.2.2版开始可用,组件允许注册Hiberate验证器,用于复合输入组件。l 主要功能除了验证之外,跳过所有JSF处理。l 使用细节 组件的主要行为是相同于,它们的区别是为了利用组件验证某些输入数据,它应该是一个输入组件的嵌套元素,然而,包裹复合输入组件,并验证从它们接受的数据。l 属性说明Attribute ameDescriptiobidigA ValueExpressio that evaluates to aistace of FacesBeaValidator.summarySummary message for a validatio errors.验证的概要信息l 例子以下例子,演示了如何使用的一个模式:. .验证也可以使用Hiberate验证, 与 使用的方式相同。组件的构架也提供了一种选择,绑定组件到管理的bea,使用value属性来完成。该属性确保在通过重新验证bea属性更新模型之后,输入数据是有效的。如下所示:. .因此,在下图说明了上面给定代码的功能:图6.10 “Games”字段没有通过验证如上图所见“Games”字段没有通过验证,因为可以被用来执行单个输入项目的验证。图6.11 输入值的总和是不正确的。上图显示在所有字段被完成之后,输入的值被验证了,并且因为总和是不正确的,所以数据没有通过验证。l 参考数据 属性表././tlddoc/idex.htmlrich/graphValidator.html表6.21 组件关联的参数名字值compoet-typeorg.richfaces.graphVpoet.html.HtmlgraphValidatorcompoet-familyorg.richfaces.graphValidatorrederer-typeorg.richfaces.graphValidatorRederertag-classorg.richfaces.taglib.graphValidatorTagl 相关资源链接组件的用法和它们的资源的例子,请浏览在RichFaces Livedemo的GraphValidator页面 :/richfaces-demo/richfaces/graphValidator.jsf?c=graphValidator四、l 描述l 主要功能l 使用细节l 属性说明Popup:默认true,如下图Popup = false;DatePatter: datePatter=yyyy-MM-dd,注MM必须要大写例子五:rich:comboBoxl 描述可选可输入框,具备动态过滤功能l 主要功能l 使用细节l 属性说明六:rich:colorPickerl 描述l 主要功能l 使用细节l 属性说明七:rich:compoetCotroll 描述l 主要功能l 使用细节l 属性说明八:表格组件l 描述迭代数据l 主要功能1. 完美的皮肤表行和子元素。2. 可以利用colspa的帮助合并行。3. 可以利用rowspa和breakBefore的帮助合并列。4. 排序列值。5. 过滤列值。l 使用细节重要,colspa、rowspa和breakBefore属性只影响在中的列,不影响在中的。中的例子功能说明:排序:、,使用sortBy过滤有两种方法过滤列值:1、使用内置过滤。它利用startsWith()函数制造过滤。在这种情况下,你需要在你希望过滤的列定义filterBy属性。这个属性定义迭代对象的属性,在过滤处理时使用它。在filterBy属性中的表达式只能引用var属性声明的变量。对那些使用其他属性声明的,比如rowKeyVar属性,则不能引用。filterValue属性被用来获得或改变当前过滤的值。在页面上可以使用初始过滤值定义它,或者作为值绑定在服务器上获得或改变它。如果 filterValue属性非空,在首次渲染时,从一开始表就会被过滤。你可以使用rich-filter-iput CSS类定制输入表单。为了改变过滤事件,你可以在列上使用filterEvet属性,例如,oblur(默认值)2、使用外部过滤。在这种情况下,你需要编写你的定制过滤函数或表达式,以及定义控件。filterExpressio属性被用来定义求布尔值的表达式。这个表达式检查是否对象满足过滤条件。filterMethod属性被用来定义方法绑定。这个方法访问对象参数,并返回布尔值。因此,这个方法也可以用来检查是否对象满足过滤条件。使用这个属性的最好方式,是用于实现你自己的复杂业务逻辑。filterExpressio和 filterMethod属性使用的简单例子,请看RichFaces LiveDemo页面: /richfaces-demo/richfaces/filterigFeature.jsf?tab=ex-usage&cid=4110192属性说明中的sortBy属性1、该属性必须和rich:dataTable组件一起使用;2、在sortBy属性中的表达式只能引用var属性声明的变量,对那些使用其他属性声明的,比如rowKeyVar属性,则不能引用过滤功能1filterBy=#cap.type filterValue=#filterigBea.filterType filterEvet=okeyup filterValue,默认值filterMethod(filterStates)执行了多次,且看不出效果九:rich:dataFilterSliderl 描述一个基于滑块动作的组件,用于过滤表数据。l 主要功能1. 依赖于它的子女的值过滤任何基于UIData的组件。2. 完全可换肤的控件和输入元素。3. 可选的,带有一个管理的属性位置的值文本字段。4. 可选的,在一个页面上废弃的组件。5. 可选的,只要拖动句柄就显示当前值的工具提示。6. 鼠标移动后,拖动的状态是稳定的。7. 可选的,如果文本输入字段出现,可以手工输入。8. 手工输入验证。l 使用细节dataFilterSlider组件使用for属性绑定到某些UIData组件,并过滤在一个表中的数据。l 属性说明ameDetailforValRef是一个字符串,它被用于目标UIData组件的一个值属性。旨在重新设置UIData组件支持由后台bea提供的原始列表(tabel的数据集合)。filterBy是一个对象成员的getter,用于与滑块值的比较。它的值用于结果过滤。(方法)hadleValue用于保存在dataFilterSlider上当前的句柄的位置。根据当前的值,适当的值,根据filterBy定义的getter获得的,被过滤。如:hadleValue=30000hadleValue=60000startRage句柄开始值edRage句柄最大值maualIput是否允许用户输入句柄storeResults它准许dataFilterSlider组件在会话中保存UIData目标对象。如果组件需要根据句柄状态改变的事件提交表单,使用submitOSlide属性。当属性定义为true,根据事件提交被定义使用到的通用属性ajaxSigle限制JSF树的处理(解码,转换,验证和模型更新)只对发送请求的组件。 布尔值。默认为false。bypassUpdates如果为 true,在验证处理阶段 ,它根据一个强制渲染响应跳过模型bea的更新。它可以被用来验证组件的输入。limitToList如果为true,则在页面上所有那些AJAX渲染的组件才会被更新,它的ID传递给组件可描述的reReder属性。默认值为false意味着所有使用ajaxRedered=true的组件会被更新。reReder组件的id(用调用UICompoet.fidCompoet()的形式),如果由这个组件引发Ajax请求,渲染。可以是单个id、逗号分隔的Id列表或使用数组和集体的EL表达式。process组件的id(用调用UICompoet.fidCompoet()的形式),如果由这个组件引发Ajax请求,在2-5阶段处理。可以是单个id、逗号分隔的Id列表或使用数组和集体的EL表达式。有关process属性的用法的信息,请查看“决定处理什么”指南一节。status请求状态组件的id(用调用UICompoet.fidCompoet()的形式)evetsQueue队列名字,用于避免在完成来自相同事件的其他请求之前发送下一个请求。可以被用来减少频繁请求的数量(按键,鼠标移动等等)。requestDelay定义时间(用秒)的属性,在请求准备发送之前,它在队列中等待的时间。data序列化(在默认时,以JSO格式)在客户端由开发者在AJAX请求时传递的数据。igoreDupResposes如果最新“相似”请求已经是在队列之中,“igoreDupResposes”属性命令忽略请求产生的Ajax响应。igoreDupResposes=true,不会中止请求,而是会在服务器上处理它,但只是允许如果响应丢失现状,用于避免在客户端上不必要的更新。timeout在一个特殊请求时的响应等待时间。如果在这个时间没有收到响应,中止请求。similarityGroupigId如果任何组件使用了相同的ID,那么这些组件会被分组。immediate标志指明,如果组件被ajax请求激活,通知应该立即被传递到感兴趣的侦听器和动作。(即,在应用请求值阶段期间),而不是等待直到调用应用程序阶段。l 例子. . .在上面的例子中,不同的两个属性用于过滤:forValRef 是一个字符串,它被用于目标UIData组件的一个值属性。旨在重新设置UIData组件支持由后台bea提供的原始列表。filterBy 是一个对象成员的getter,用于与滑块值的比较。它的值用于结果过滤。hadleValue属性,用于保存在dataFilterSlider上当前的句柄的位置。根据当前的值,适当的值,根据filterBy定义的getter获得的,被过滤。一个更重要的属性是storeResults,它准许dataFilterSlider组件在会话中保存UIData目标对象。如果组件需要根据句柄状态改变的事件提交表单,使用submitOSlide属性。当属性定义为true,根据事件提交被定义。有关process属性的用法的信息,请查看“决定处理什么”指南一节。l 参数数据属性表 ././tlddoc/idex.htmlrich/dataFilterSlider.html。表6.37 组件关联的参数名字值compoet-typeorg.richfaces.DataFilterSpoet.html.HtmlDataFilterSlidercompoet-familyorg.richfaces.DataFilterSliderrederer-typeorg.richfaces.DataFilterSliderRederertag-classorg.richfaces.taglib.dataFilterSliderTag表6.38 使用相应皮肤参数的样式类(selectors)类名(selectors)描述皮肤参数CSS属性映射.rage, .rich-dataFilterSlider-rage定义组件范围的样式subBorderColor, paelBorderColor border-color.slider-iput-field, .rich-dataFilterSlider-iput-field定义组件输入字段的样式cotrolBackgroudColorbackgroud-colorgeeralFamilyFotfot-familygeeralSizeFotfot-sizecotrolTextColorcolorpaelBorderColorborder-colorsubBorderColorborder-bottom-color, border-right-color表6.39 无皮肤参数的样式类(selectors)类名描述.trailer, .rich-dataFilterSlider-trailer定义组件尾部(trailer)的样式.track, .rich-dataFilterSlider-track定义组件轨迹(track)的样式在“定制样式类的定义”一节,你可以发现所有需要的有关样式类的信息。l 相关联的资源链接组件的用法和它们的资源的例子,请浏览在RichFaces Livedemo的页面:/richfaces-demo/richfaces/dataFilterSlider.jsf?c=dataFilterSlider十:rich:datascrollerl 描述该组件旨在使用Ajax请求提供滚动表功能。表634 组件l 主要功能 提供表滚动功能 内置Ajax处理 提供快速控制 皮肤支持l 使用细节组件提供滚动表功能,和TOMAHAWK滚动器一样,但TOMAHAWK滚动器不支持Ajax请求的使用。当你改变过滤,根据的当前模型更新排序时,组件也应该与一起被渲染。该组件应该放置在父表的页脚内,或者使用for属性绑定它。注意,for属性在构建时被求值,而不是在渲染时,这就是为什么它会被JSTL标签忽略。表也应该定义rows属性,限定表输入的行数。滚动器也应该利用maxPages属性的帮助,限定在页面上显示的链接最大数。组件提供两个控制器组,用于切换: 切换到特殊页面的页面数字 快速切换控件:first, last, ext,previous, fastforward, fastrewid。利用相应的名字添加facets组件创建快速切换控件:例子:. .图6.35 的快速切换该屏幕截图显示了各组的一个控制器。也有禁用状态的facets:first_disabled,last_disabled, ext_disabled, previous_disabled, fastforward_disabled,fastrewid_disabled。对fastforward/fastrewid控制的定制,使用另外的fastStep属性。在快速滚动使用时,该属性指明切换的页面数。page是一个值绑定属性,用于定义和保存当前的页数。如下所示:. .结果如下:图6.36 page属性的用法pageIdexVar和pagesVar属性定义一个请求域变量,并在中提供显示当前页和页数的能力。这些属性被用来定义变量名字,它们被用于使用pages的facet中。如下所示:. .可以在两个控件中插入随意的分隔符。为这个目的,使用cotrolsSeparator facet。如下所示:. .从RichFaces 3.2.1开始,多实例的行为和页面绑定被调整。在模型改变之后,增加了不正确页面的处理。在渲染响应之前,调用阶段侦听器扫描的页面,并且执行下面的操作: 检查是否被渲染。(如果检查发生异常,被认为不会被渲染) 如果被渲染 附加了的表获得的页面属性的值。有关process属性用法的信息,请看“决定处理什么”指南一节。注意,确保为一个表定义的所有组件,对所有page属性有相同的值。在最后一个page中指定的页面,在浏览
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生猪屠宰管理办法细则
- 用友采购合同管理办法
- 田间肥料运输管理办法
- 电信公司管理办法细则
- 电信订购业务管理办法
- 电力专利项目管理办法
- 电子招标管理办法实施
- 电子结算业务管理办法
- 电影投资流程管理办法
- 电缆刚性保护管理办法
- 2025-2030中国临时晶圆键合系统行业发展态势与投资动态预测报告
- 环保行业成本管理制度
- 沈阳地铁入职笔试题目及答案
- 杜甫草堂介绍
- JG/T 337-2011混凝土结构防护用渗透型涂料
- 《天然植物化学成分与抗肿瘤机制》课件
- 肿瘤危重症护理从急救到安宁的全程管理2025
- 自行车比赛课件
- 开利30HXY-HXC螺杆冷水机组开机、运行维护手册
- 儿童暴发性心肌炎诊治专家建议(2025)解读课件
- 托育服务政策法规与职业伦理 课件全套 黄鑫 第1-8章 绪论、托育服务政策法规概述-托育职业伦理教育、修养与评价
评论
0/150
提交评论