JSF執行個體:組件顯示(隱藏)與資料排序

來源:互聯網
上載者:User
js|排序|資料|顯示

  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
  

  從源碼可以知道這個頁面通過一個 標記來顯示所有發票。

...
   value="#{invoice.invoiceNumber}"    action="#{viewInvoicesPage.modifyInvoice}">
  
 
.....

  從上看出,當我們點擊發票的序號時,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頁。

相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。