快速业务通道

怀疑论者的JSF: JSF应用程序的生命周期 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
gory}"   immediate="true"   onclick="submit()"   valueChangeListener="#{CDManagerBean.categorySelected}">    <f:selectItems value="#{CDManagerBean.categories}"/> </h:selectOneRadio>

selectOneRadio 目录域被绑定到 CD 的目录属性(value="# {CDManagerBean.cd.category}")上。注意这个即时事件处理被激活了(immediate="true" )。这种设置意味着 Category 组件的事件会在应用值阶段(而不是在调用程序阶段)进行 处理(以及类型转换和有效性验证)。

JavaScript 功能是在 onclick="submit()" 这一行 —— 即当用户进行修改时,它应该 立即被提交到 Web 程序中进行处理。

事件处理程序方法

在清单中显示的可用分类是由 f:selectItems 标签值(value="# {CDManagerBean.categories}")确定的。这个组件的事件处理程序的变化是控制程序的 categorySelected() 方法(valueChangeListener="#{CDManagerBean.categorySelected}" )。事件处理程序如清单 20 所示。

清单 20. categorySelected 事件处理程序

[StoreController.java] /** * Event Handler for a category getting selected. * * @param event event data */ public void categorySelected(ValueChangeEvent event) {    subCategoryList.setRendered(true);    String value = (String) event.getNewValue();    if (value != null) {      this.subCategories = this.getSubcategoriesList(value);    }    FacesContext context = FacesContext.getCurrentInstance();    context.renderResponse(); }

categorySelected() 方法做的第一件事情是允许 subCategoryList 调用自己。 categorySelected() 方法然后会使用所选择的分类值来查找一个 subCategories 清单。 subCategories 属性被绑定到 subcategoryList 值上。接下来,事件处理程序通过调用当前 FacesContext 上的 renderResponse() 方法强制 JSF 转到进行响应阶段。然后,GUI (cdForm.jsp)为当前显示的目录重新显示可用的子目录。

怀疑论者的JSF: JSF应用程序的生命周期(13)

时间:2011-04-11 IBM Rick Hightower

将组件绑定到控制程序上

subCategoryList 组件是从 GUI 上绑定的。正如您可以将值绑定到组件上一样,您也可 以将这些组件绑定到一个控制程序上。子目录是在 cdForm.jsp 页面中定义的,如清单 21 所示。

清单 21. 在 cdForm.jsp 页面中定义的子目录清单

[cdForm.jsp] <h:selectOneListbox id="subcategory" value="# {CDManagerBean.cd.subCategory}"   binding="#{CDManagerBean.subCategoryList}">    <f:selectItems value="#{CDManagerBean.subCategories}"/> </h:selectOneListbox>

binding 属性允许您将 GUI 的组件绑定到后端的 bean(控制程序)上。这样,上面的组 件就会被绑定到 CDManagerBean.subCategoryList 上,这是在清单 22 中定义的控制程序中 的一个属性。

清单 22. subCategoryList 属性

[StoreController.java ] /** GUI Component that represents   the Subcategory list on the CDForm. */ private UIInput subCategoryList; {    subCategoryList = new HtmlSelectOneListbox(); } /** * Subcategory list component * * @param aSubCategoryList The subCategoryList to set. * * @uml.property name="subCategoryList" */ public void setSubCategoryList(UIInput aSubCategoryList) {    this.subCategory

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号