webdn
 
  首页     免费截图     VIP会员区     广告Banner     技术文档     网站模板  
网站截图,网站每日新 !
买域名送空间
虚拟主机 域名注册

首页 >> WebDN 技术文档 >> 网络编程 >> JSP 资料大全 >> JSF实例演示:组件显示(隐藏)与数据排序

 

JSF实例演示:组件显示(隐藏)与数据排序

【摘 要】当用标记显示数据时,聪明的JSF用getRowData()可以知道你点击了那一行(即那一个发票号,这实际上是JSF将标记转为HTML链接时自动加上了行索引),再将这一行数据传给 ModifyInvoice.jsp页

    JSF中处理组件的显示和隐藏、数据的排序等相对其它框架非常容易和直接了当, 常被教科书作为实例分析和讲解。下面这个实例来自名为《 Mastering JavaServer Faces中文版》的书(略有改动),通过组件的显示(或隐藏)及数据的排序来讲解JSF中UI组件的用法。

  先看看它的界面共三个(1)index.jsp,

  (2)ModifyInvoice.jsp,这个修改发票界面有一个显示(隐藏)按钮,点击时可显示(或隐藏)部分组件。

(3)ViewInvoices.jsp,显示全部发票的列表。并可以按发票序号和数额排序。

  主要看看这个页面中,当点击发票的发票序号时如何正确返回到ModifyInvoice.jsp页面(在我们自己的实践当中一定要遇到的问题啊,通常的做法是超链接当中带参数)。当然首先要在faces-config.xml文件中定义导航法则:


  /ViewInvoices.jsp
  
    modifyInvoice
    /ModifyInvoice.jsp
  

  从源码可以知道这个页面通过一个 (?XML:NAMESPACE PREFIX = H /)标记来显示所有发票。

...
 <H:COMMANDLINK id=viewInvoice title="View invoice details" styleClass="Link"
  value="#{invoice.invoiceNumber}"    action="#{viewInvoicesPage.modifyInvoice}">
  <H:OUTPUTTEXT id=invoiceNumber value="#{invoice.invoiceNumber}"),</H:OUTPUTTEXT>
 
.....

  从上看出,当我们点击发票的序号时,JSF调用viewInvoicesPage.modifyInvoice方法。

 public String modifyInvoice() {
   FacesContext facesContext = FacesContext.getCurrentInstance();
        
   UIViewRoot root = facesContext.getViewRoot();
   UIData table = (UIData) root.findComponent("invoiceForm").findComponent("table");
   InvoiceBean invoice = (InvoiceBean) table.getRowData();

   ValueBinding binding = 
  facesContext.getApplication().createValueBinding("#{modifyInvoicePage}"); ModifyInvoicePage detailPage = (ModifyInvoicePage) binding.getValue(facesContext); detailPage.setInvoice(invoice); return "modifyInvoice"; }

  如此看来,当用标记显示数据时,聪明的JSF用getRowData()可以知道你点击了那一行(即那一个发票号,这实际上是JSF将标记转为HTML链接时自动加上了行索引),再将这一行数据传给 ModifyInvoice.jsp页。



电话咨询:010-60520722 QQ咨询:3792656   |   583696287   |   66733350 关于WebDN  |  站点地图  |  联系我们  |  支付方式  |  友情链接
© 2004-2008 WebDN.com 版权所有. 沪ICP备05040479号