快速业务通道

JSF 1.2入门,第2部分 JSF生命周期、转换、检验和阶段监听器 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
rendered="#{not empty contactController.contacts}"。<h:dataTable> 组件的功能非 常丰富而且容易使用。

在 <h:dataTable> 中,使用 <h:column> 显示属性中的值。每个列在 <f:facet> 标记中定义一个标题。facet 是另一个组件使用的名称组件。然后,在 <f:facet> 后面, <h:column> 组件内部,使用 <h:outputText> 组件输出联系人的 firstName 和 lastName 属性。

每一行都有一个删除链接和一个编辑链接,每个链接都使用一个 <h:commandLink>。删除链接 绑定到 contactController.remove 方法。编辑链接绑定到 contactController.read 方法。基于配置 <f:setPropertyActionListener> 的方式,用当前行填充 contactController.selectedContact 属性。在调用动作方法之前,<f:setPropertyActionListener> 使当前行的联系人被复制到 selectedContact。

JSF 1.2入门,第2部分 JSF生命周期、转换、检验和阶段监听器(4)

时间:2011-08-09 IBM Richard Hightower

联系人 CRUD 应用程序的 faces-config.xml

faces-config.xml 文件将 ContactRepository 与 ContactController 联系起来,见清单 3:

清单 3. faces-config.xml

<managed-bean>   <managed-bean-name>contactRepository</managed-bean-name>   <managed-bean-class>   com.arcmind.contact.model.ContactRepository   </managed-bean-class>   <managed-bean-scope>application</managed-bean-scope> </managed-bean>  <managed-bean>   <managed-bean-name>contactController</managed-bean-name>   <managed-bean-class>     com.arcmind.contact.controller.ContactController   </managed-bean-class>   <managed-bean-scope>request</managed-bean-scope>   <managed-property>     <property-name>contactRepository</property-name>     <property-class>      com.arcmind.contact.model.ContactRepository     </property-class>     <value>#{contactRepository}</value>   </managed-property> </managed-bean>

注意,contactRepository 处于 application 范围,并使用 <managed-property> 元素将它注 入 contactController 的 contactRepository 中。可以使用这种技术把依赖项/协作组件注入控制器, 这有助于分隔模型和视图;还允许注入伪对象(mock object),以后可以用真实的对象替换这些伪对象 。我曾经多次为 ContactRepository 这样的模型对象建立伪对象,在完成 GUI 之后再用真实版本替换它 。

这个应用程序的模型非常简单,见清单 4 和清单 5。清单 4 给出 Contact 类:

清单 4. Contact

package com.arcmind.contact.model; public class Contact { private String firstName; private String lastName; protected long id; public Contact(String firstName, String lastName) { this.firstName = firstName; this.lastName = lastName; } public Contact() { } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + (int) (id ^ (id >>> 3

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