2011-03-28 126 views
4

什麼是或可能是最佳實踐?JSF和PrimeFaces策略

  1. 使用標準JSF組件並在需要時通過PrimeFaces組件將它們組合起來(例如需要DHTML或AJAX組件時)
  2. 忘記所有JSF組件,並嘗試使用所有PrimeFaces組件儘可能

請解釋它,並告訴我你的經驗。

在此先感謝...

回答

9

PrimeFaces是你的AJAX框架,所以如果你需要發送一個Ajax請求,那麼使用PrimeFaces組件。

即使您不需要發送ajax請求,但仍然可以使用PF組件,如果您需要爲您的網頁提供一致性外觀。例如,h:commandButtonp:commandButton。使用p:commandButton如果u需要發送Ajax請求,但你也可以做到這一點

<p:commandButton ajax="false" action="Your Action here"/> 

這將提供相同的結果:

<h:commandButton action="Your Action here"/> 

但這樣一來,就可以提供一致的外觀相同整個頁面上的按鈕。

PrimeFaces沒有替代h:panelGridh:panelGrouph:inputTexth:outputText ...

+0

PF 3.0有p:outputText,p:inputText :) – Selvin 2011-03-30 06:03:22

+1

@selvin:PF3.0 M1甚至還沒有發佈。穩定版本需要幾個月才能出來。你可以嘗試每晚構建,但主要是測試和玩耍。我不建議將它用於當前的工作項目。 – 2011-03-30 15:32:55

6

依賴於唯一的功能需求。如果您已經使用PrimeFaces,並且您希望實現的任何功能都可以使用PrimeFaces組件更好/更輕鬆地實現,那就使用它。

選項1接近,但選項2過度。 PrimeFaces例如沒有<p:form>,<p:panelGroup><p:outputText>什麼的。

3

隨着Primefaces這是很容易得到一個一致的外觀爲您的應用程序,因爲它帶有的ThemeRoller CSS框架。你可以輕鬆切換設計。儘管如果您應用正確的css類,讓普通的jsf組件看起來像primefaces組件並不困難。

我認爲primefaces是一個很好的組件庫。然而,一些組件仍然是越野車(例如日期選擇器)。因此,如果您在primefaces組件中遇到一些意想不到的行爲,那麼擁有jsf後備(或者來自另一個組件庫或jquery的替代品)總是很好。

我沒有混合不同組件庫的經驗。知道它們會有趣,它們是如何相互作用的。但這將是另一個問題的主題...