JSF和PrimeFaces战略

时间:2011-03-28 17:45:02

标签: jsf jsf-2 primefaces

最佳做法是什么或可能是什么?

  1. 使用标准的 JSF 组件,并在需要时通过 PrimeFaces 组件将它们组合在一起(例如,当需要DHTML或AJAX组件时)
  2. 忘记所有 JSF 组件并尝试尽可能多地使用所有 PrimeFaces 组件
  3. 请解释一下并告诉我你的经历。

    提前致谢...

3 个答案:

答案 0 :(得分:9)

PrimeFaces是您的AJAX框架,因此如果您需要发送ajaxical请求,请使用PrimeFaces组件。

即使你不需要发送ajax请求,但是如果你需要为你的网页提供一致性外观,你仍然可以使用PF组件。例如,h:commandButtonp:commandButton。如果您需要发送ajax请求,请使用p:commandButton,但您也可以执行此操作

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

这将提供与以下相同的结果:

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

但是这样,您可以在整个页面中为按钮提供相同的一致外观。

PrimeFaces没有替换h:panelGridh:panelGrouph:inputTexth:outputText ......

答案 1 :(得分:6)

取决于唯一的功能要求。如果您已经在使用PrimeFaces,并且使用PrimeFaces组件可以更好/更容易地实现您想要实现的任何目标,请使用它。

选项1接近,但选项2过火。例如,PrimeFaces没有<p:form><p:panelGroup><p:outputText>或其他东西。

答案 2 :(得分:3)

使用Primefaces,可以很容易地获得应用程序的一致外观,因为它带有Themeroller CSS框架。您可以轻松切换设计。虽然如果你应用正确的css类,让普通的jsf组件看起来像primefaces组件并不困难。

我认为primefaces是一个很棒的组件库。然而,一些组件仍然有缺陷(例如日期选择器)。因此,如果你使用primefaces组件得到一些意想不到的行为,那么有一个jsf回退(或来自另一个组件库或来自jquery的替代方案)总是好的。

我没有混合不同组件库的经验。知道它们如何相互作用会很有趣。但那将是另一个问题......