编写ADF 验证
来源:互联网 发布:mac版的优酷能缓存吗 编辑:程序博客网 时间:2024/06/06 16:35
一 ADF验证架构
ADF总共有三个环节的验证,分别是View层,Model层和业务层.不同的层都提供了一些内置的验证提供给开发人员。如图我们可以看出各自的关系及次序:
从上图我们看到,对于View层又包含二层,分别是Client和ADF Faces层,Client运行的客户端,可以用javascript实现,而ADF Faces运行在服务器端,必须用java类来实现。
二 ADF Face层验证
现在写一个邮件的验证类步骤:
1 编写java 类实现Validator接口:
public class EmailValidateBean implements Validator { public EmailValidateBean() { super(); } public void validate(FacesContext facesContext, UIComponent uIComponent, Object object) throws ValidatorException { }}2 编写验证代码:
public class EmailValidateBean implements Validator { String str="^(.+)@(.+)$"; //表达式 Pattern enailVal= Pattern.compile(str); public EmailValidateBean() { super(); } public void validate(FacesContext facesContext, UIComponent uIComponent, Object object) throws ValidatorException { Matcher matcher=enailVal.matcher(object.toString()); if(!matcher.matches()){ // JSFUtils.addFacesErrorMessage("电子邮件格式出错!"); FacesMessage f=new FacesMessage("电子邮件格式出错!"); f.setSeverity(FacesMessage.SEVERITY_ERROR); throw new ValidatorException(f); } }}
3 注册.在face-config.xml添加validateor,代码如下:
<faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee"> <application> <default-render-kit-id>oracle.adf.rich</default-render-kit-id> </application> <!---注册电子邮件--> <validator> <validator-id>emailVal</validator-id> <validator-class>hr.EmailValidateBean</validator-class> </validator> <!----></faces-config>
4 在组件中使用定自义验证:
<af:inputText value="#{bindings.Email.inputValue}" label="#{bindings.Email.hints.label}" required="#{bindings.Email.hints.mandatory}" columns="#{bindings.Email.hints.displayWidth}" maximumLength="#{bindings.Email.hints.precision}" shortDesc="#{bindings.Email.hints.tooltip}" id="it4"> <!--使用validatorId指定在face-config.xml中的validator-id--> <f:validator validatorId="emailVal"/> </af:inputText>
三 Model层验证
在这层中我们开发人员用的是最多的,特别是在于绑定VO的时候,如图:
<af:inputText value="#{bindings.FirstName.inputValue}" label="#{bindings.FirstName.hints.label}" required="#{bindings.FirstName.hints.mandatory}" columns="#{bindings.FirstName.hints.displayWidth}" maximumLength="#{bindings.FirstName.hints.precision}" shortDesc="#{bindings.FirstName.hints.tooltip}" id="it2"><strong><span style="color:#ff6666;"> <f:validator binding="#{bindings.FirstName.validator}"/></span></strong> </af:inputText>上面的标红色就是model层的验证。
四 业务层验证
1 在业务层,ADF提供了三种类型的验证,Attribute Level,Entity Level和Transction Level.在提交的时候,也是按前面的顺序执行。需要说明的是Transction验证默认是执行的,但我们可以跳过此验证.具体做法是在page的定义文件中加入跳过DataControl验证,如下图:<pageDefinition xmlns="http://xmlns.oracle.com/adfm/uimodel" version="11.1.1.61.92" id="popupPageDef" Package="pages" <span style="color:#ff0000;"><strong>SkipValidation="skipDataControls"</strong></span>>上面标红的代表跳过Transction Level的验证。
2 使用domain进行业务层验证(具体方法略)
0 0
- 编写ADF 验证
- adf验证说明
- ADF Faces中如何跳过验证
- ADF EO 字段 唯一性验证
- adf
- adf
- adf
- adf
- ADF
- oracle adf 通过代码路过JSF生命周期的验证阶段
- 验证码的编写
- 验证码的编写
- Java编写验证码
- Java编写验证码
- 验证码编写
- 验证码编写
- Servlet编写验证码
- 验证码的编写
- 第三周第二章
- ListView设置emptyView的限制
- 数据库
- Apache反向代理设置方法
- Mac OS X 键盘字母键和数字键的切换
- 编写ADF 验证
- 用ListView搭建手机通讯录
- GROUP BY的用法
- 开发中的自动化——按键精灵&AutoIt
- Linux 服务器监控命令
- leetcode Palindrome Partitioning
- STM32时钟设置
- 《数据结构和算法分析》学习之散列表
- HTML5学习笔记之二CSS基础