快速业务通道

怀疑论者的JSF - JSF转换与验证 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18
blic class PhoneConverter implements Converter {   ...   public Object getAsObject(FacesContext context, UIComponent component, String value) {     if (StringUtils.isEmpty(value)){ return null;}     PhoneNumber phone = new PhoneNumber();     String [] phoneComps = StringUtils.split(value," ,()-");     String countryCode = phoneComps[0];     phone.setCountryCode(countryCode);     if ("1".equals(countryCode)){       String areaCode = phoneComps[1];       String prefix = phoneComps[2];       String number = phoneComps[3];       phone.setAreaCode(areaCode);       phone.setPrefix(prefix);       phone.setNumber(number);     }else {       phone.setNumber(value);     }     return phone;   }   }

怀疑论者的JSF - JSF转换与验证(5)

时间:2011-03-13 IBM Rick Hightower

第 3 步:实现 getAsString 方法

这一步将一个 PhoneNumber 对象转换为一个字符串。

public class PhoneConverter implements Converter {   ...   public String getAsString(FacesContext context,                UIComponent component, Object value) {     return value.toString();   } } public class PhoneNumber implements Serializable {   ...   public String toString(){     if (countryCode.equals("1")){       return countryCode + " " + areaCode                 + " " + prefix + " " + number;     }else{       return number;     }   } }

第 4 步:在 faces 上下文中注册自定义转换器

第 4 步可以以两种方式执行。第一种选择使用(比如)arcmind.PhoneConverter 的 id 来注册 PhoneConverter 类。JSP 页中的 <f:converter/> 标签会使用这个 id。下面是第 4 步的选项 1 的代码:

<converter>  <converter-id>arcmind.PhoneConverter</converter-id>  <converter-class>com.arcmind.converters.PhoneConverter</converter-class> </converter>

另一种方法是注册 PhoneConverter 类来自动处理所有 PhoneNumber 对象,如下所示。

<converter>  <converter-for-class>com.arcmind.value.PhoneNumber</converter-for-class>  <converter-class>com.arcmind.converters.PhoneConverter</converter-class> </converter>

第 5 步:在 JSP 中使用转换器标签?

自然,下一步的执行取决于所选的注册方法。如果选择使用 arcmind.PhoneConverter 的 id 来注册 PhoneConverter 类,那么就使用 <f:converter/> 标签,如下所示。

<h:inputText id="phone" value="#{UserRegistration.user.phone}">     <f:converter converterId="arcmind.PhoneConverter" /> </h:inputText>

如果选择注册 PhoneConverter 类来自动 处理所有 PhoneNumber,那么就不需要在 JSP 页中使用 <f:converter/> 标签。下面是第 5 步的不带转换器标签的代码。

<h:inputText id="phone" value="#{UserRegistration.user.phone}">     [Look mom no converter!] </h:inputText>

怀疑论者的JSF - JSF转换与验证(6)

时间:2011-03-13 IBM Rick Hightower

这样,我们

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号