jsf转换器、验证器_第1页
jsf转换器、验证器_第2页
jsf转换器、验证器_第3页
jsf转换器、验证器_第4页
jsf转换器、验证器_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JSF转换器与验证器信息工程学院软件系转换器(Converter)协助模型与视图之间的数据转换。完成HTTP字符串Java对象JSF内建(标准)转换器JSF提供一组标准的Converter用来转换组件数据,可以完成基本数据类型的自动转换,不需要显示的调用。转换器的使用将组件值绑定到与转换器类型相同的托管(辅助)Bean上,JSF自动进行转换;通过组件的converter属性指明转换器在组件标签中嵌入一个转换标签<f:converter>使用转换器标签的converterId属性引用转换器。日期转换器—DateTimeConverter转换对象必须是Date。属性:dateStyle:日期格式;在pattern未指定且type为date时有效值:default、short、medium、long和full。pattern:自定义格式;指定后,type、dateStyle、timeStyle将被忽略。timeStyle:时间格式;同dateStyle。type:值:date、time、both;指定结果中包含的内容。日期转换器<h:outputTextvalue="#{user.dateTime}">

<f:convertDateTimepattern="yyyy年MM月dd日"/></h:outputText><h:inputTextvalue="#{convert.birthday}">

<f:convertDateTimepattern="yyyy-mm-dd"/></h:inputText>数值转换—convertNumber字符串和数值之间转换。属性:currencyCode:货币代码;currencySymbol:货币符号;groupingUsed:是否包含分组符,true|false;integerOnly:只显示整数部分,true|false;pattern:自定义格式;type:显示风格,有效值:number|currency|percentage数值转换<h:outputTextvalue="89.443"> <f:convertNumberpattern="0,000.0000"/></h:outputText>错误信息显示<h:messagefor="ID"style="?"/>for:组件ID;style:信息显示的样式<h:form><h:inputTextid="dateField"value="#{user.date}"><f:convertDateTimepattern="dd/MM/yyyy"/></h:inputText><h:messagefor="dateField"style="color:red"/><br><h:commandButtonvalue="送出"action="show"/></h:form>指定转换错误信息<h:tagconvertMessage="?"/><h:form><h:inputTextid="dateField"value="#{user.date}"

convertMessage="请按dd/mm/yyyy格式输入"

><f:convertDateTimepattern="dd/MM/yyyy"/></h:inputText><h:messagefor="dateField"style="color:red"/><br><h:commandButtonvalue="送出"action="show"/></h:form>自定义转换器实现javax.faces.convert.Converter接口的publicObjectgetAsObject(FacesContextcontext,UIComponentcomponent,Stringstr);publicStringgetAsString(FacesContextcontext,UIComponentcomponent,Objectobj);两个方法。转换失败时抛出:ConverterException异常注册转换器在faces-config.xml中注册:<converter><converter-id>ID</converter-id><converter-class>

转换器完全类名</converter-class></converter>自定义转换器制作一个人名的转换器!publicclassConvertimplementsConverter{

publicObjectgetAsObject(FacesContextarg0,

UIComponentarg1,Stringarg2){ UserNameusrName=newUserName(); try{ String[]name=arg2.split(","); usrName.setFirstName(name[0]); usrName.setLastName(name[1]); } catch(Exceptione){ thrownewConverterException(); } returnusrName; }自定义转换器制作一个人名的转换器!

publicStringgetAsString(FacesContextarg0,

UIComponentarg1,Objectarg2){ if(arg2==null){ returnnull; } UserNameuName=(UserName)arg2; returnuName.getFirstName()+","+uName.getLastName();

}

}验证器内置验证器<f:validateDoubleRange>

验证一个浮点型数据必须在指定范围内;<f:validateLongRange>

验证一个长整型数据必须在指定范围内;<f:validateLength>

验证对象值的长度必须在指定范围内;验证器内置验证器属性maximum:指定最大长度或最大值minimum:指定最小长度或最小值验证器错误信息属性validatorMessage验证器必填验证器<h:inputTagrequired="true"/>requiredMessage:错误信息自定义验证器实现javax.faces.validator.Validator接口,并实现

validate(FacesContextcontext,UIComponentcomponent,Objectobj)方法。验证失败时抛出:ValidatorException异常自定义验证器注册验证器<validator> <validator-id>ID</validator-id> <validator-class>CLASS</validator-class> </validator>自定义验证器验证口令长度不能少于6个字符,并由字母和数值组成。publicclassPasswdVadimplementsValidator{publicvoidvalidate(FacesContextcontext,UIComponentcomponent,Objectobj){Stringpassword=(String)obj;

if(password.length()<6){FacesMessagemessage=newFacesMessage(FacesMessage.SEVERITY_ERROR,"长度小于6","口令长度不能小于6");thrownewValidatorException(message);}自定义验证器验证口令长度不能少于6个字符,并由字母和数值组成。if(!password.matches(".+[0-9]+")){FacesMessagemess

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论