- 1、本文档共125页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2.5 转换器,监听器和验证器 2.5.4 引用backing bean方法 引用处理Value-Change Event的方法 而下面的代码中,组件标签则用“valueChangeListener”描述,借用方法表达式实现了引用一个名为“Cashier”的bean的“processValueChange”方法,这个方法就是定义了处理当用户在组件上输入名字而发生的value-change event事件的。 2.5 转换器,监听器和验证器 2.5.4 引用backing bean方法 引用处理Value-Change Event的方法 h:inputText id=name size=50 value=#{} required=true valueChangeListener=#{cessValueChange} / /h:inputText 2.6 生成用户UI组件 在Web应用程序的开发设计过程中,采用JavaServer Faces技术开发页面将需要大量的组件,以求获得更为合乎设计要求的页面。 在以往的设计工作中会积累下大量的HTML格式的组件,有时为了增加其行为,有时为了更新其版本,就可以利用组件架构的可扩展性,采用JavaServer Faces对现有的组件进行升级,生成新的组件,可以称这样的组件为用户化UI组件(Custom UI Components)。 2.6 生成用户UI组件 采用JavaServer Faces技术生成用户化组件的步骤包括: 1、生成用户组件类; 2、如果组件不处理回复,则将回复委托给回复器; 3、注册组件; 4、如果组件是能生成事件的,则生成事件处理器; 5、借助于扩展javax.faces.webapp.UIComponentELTag类,写标签处理器类。此种类中需要三个方法:getRendererType方法返回用户回复器的类型,getComponentType方法返回用户组件类型,setProperties方法设置组件中的新属性; 6、生成定义用户标签的组件标签库描述。 2.6 生成用户UI组件 2.6.1 生成用户组件类 组件类定义了UI组件的属性和行为,属性信息包括组件的类型、标识符和本地值,行为包括解码、编码、存储组件的状态、用本地值更新bean的值、处理本地值的检验、给事件排队。 2.6 生成用户UI组件 UIComponentBase类 UI组件类 2.6 生成用户UI组件 2.6.1 生成用户组件类 ponent.UIComponentBase类是使用JavaServer Faces技术开发用户界面类的基础类。 用户所编写的组件类必须扩展自UIComponentBase类,必须实现下面的行为接口中的一个或多个:ActionSource接口、ActionSource2接口、EditableValueHolder接口、NamingContainer接口、StateHolder接口、ValueHolder接口。 2.6 生成用户UI组件 2.6.1 生成用户组件类 用户组件类的任务: 处理编码方法:encodeBegin,encodeChildren和encodeEnd方法。 检测回复器: 解码方法:decode方法。 分别见程序清单2.23、程序清单2.24、程序清单2.25。 2.6 生成用户UI组件 2.6.2 定义用户组件标记 使用用户组件标签,需要在TLD(Tag Library Descriptor,标签库描述符)文件中声明一下,TLD文件定义了怎样在JavaServer Faces页面中使用用户组件标签,Web容器用TLD文件检验标签。每个标签最低限度要有名字和命名空间在TLD文件中体现,TLD文件名称应该以taglib.xml结尾。具体例子见程序清单2.26 2.6 生成用户UI组件 2.6.3 编写用户转换器、监听器、检验器 如果标准转换器不能完全满足用户的需求,用户可以编写自己需要的转换器,完成所需的转换。 编写转换器是通过编写转换器类完成的,所有的用户转换器类必须实现Converter接口,实现其中声明的两个方法:getAsObject方法和getAsString方法。前者说明将字符串转换为哪种对象类型,后者说明将哪种对象类型转换为字符串。 2.6 生成用户UI组件 2.6.3 编写用户转换器、监听器、检验器 两种注册转换器的方法: 一种是在编写的转换器类的类名前用元注释“@FacesConverter”注册,见程序清单2.27 一种是在应用程序的配置资源文件中注册,见程序清单2.28 2.6 生成用户UI组件 2.6.3
文档评论(0)