2011-05-02 23 views
0

簡單的問題,我無法弄清楚如何以最好的方式做到這一點。 我開始一個新項目,所以我仍然有點靈活。我會考慮使用JSF 2.0,Facelets(儘管我剛剛開始學習facelets是什麼),不管你推薦哪種核心技術,我都會考慮。 它也應該在IE6上工作(但是如果有真正適合IE6的解決方案,請告訴我)如何在jsf 2.0中創建標籤行爲

如何在webapp中創建類似標籤的行爲? (最好的例子是Gmail,我猜,在側邊欄更改內容而無需刷新頁面的情況下)。不需要細節,我只是在尋找它背後的技術和指向正確方向的手指。

謝謝!

回答

0

Primefaces Tabview component怎麼樣。 Primefaces是基於JSF 2.0的組件庫。 (從來沒有在IE6上試過,我建議嘗試IE6中給出的例子)

+0

謝謝。 我正在尋找'核心'技術。意思是,我想避免使用這樣做的特定組件。 – Ben 2011-05-02 12:15:33

+0

什麼是「核心」技術?來自primefaces(或richfaces,icefaces)的組件是建立在jsf,javascript和後臺bean之上的。 – 2011-05-02 17:09:37

2

如果你想「自己動手」,你可以使用f:ajax標籤。這需要三個參數:

  • 事件:什麼觸發ajax更新。就你而言,這將是當你點擊某些東西時,比如帶有標籤名稱的錨點。
  • 監聽器:當事件發生時對託管bean執行操作。您的操作會根據用戶點擊的內容來確定當前顯示哪個選項卡。您的用戶界面將使用該信息來確定要呈現的內容。
  • render:將重新顯示的組件的ID。這應該是選項卡控件本身,它可以是頁面上的panelGroup或panelGrid。這決定了頁面的哪一部分將被重新繪製。您可以在此處爲所有選項卡提供UI邏輯,但將它們配置爲僅當它們是當前選擇時才呈現。

Richfaces,Primefaces和Icefaces組件庫都有您可以使用的解決方案。

+0

那麼解決方案將呈現一個組件/面板並隱藏所有其他組件? (在按鍵時被替換的實際內容) – Ben 2011-05-02 14:24:30

+0

這將是一個簡單的方法來完成你所要求的,是的。 – 2011-05-02 17:28:06