【发布时间】:2011-03-28 17:45:01
【问题描述】:
什么是或可能是最佳做法?
- 使用标准 JSF 组件并在需要时通过 PrimeFaces 组件组合它们(例如,当需要 DHTML 或 AJAX 组件时)
- 忘记所有 JSF 组件,尽量使用所有 PrimeFaces 组件
请解释一下并告诉我你的经历。
提前致谢...
【问题讨论】:
标签: jsf jsf-2 primefaces
什么是或可能是最佳做法?
请解释一下并告诉我你的经历。
提前致谢...
【问题讨论】:
标签: jsf jsf-2 primefaces
PrimeFaces 是您的 AJAX 框架,因此如果您需要发送 ajaxical 请求,请使用 PrimeFaces 组件。
即使您不需要发送 ajax 请求,但您仍然可以使用 PF 组件,如果您需要为您的网页提供一致的外观。例如,h:commandButton 和 p:commandButton。如果您需要发送 ajax 请求,请使用 p:commandButton,但您也可以这样做
<p:commandButton ajax="false" action="Your Action here"/>
这将提供与以下相同的结果:
<h:commandButton action="Your Action here"/>
但是通过这种方式,您可以在整个页面中为您的按钮提供一致的外观。
PrimeFaces 没有 h:panelGrid、h:panelGroup、h:inputText、h:outputText 的替代品 ...
【讨论】:
取决于唯一的功能要求。如果您已经在使用 PrimeFaces 并且您想要实现的任何目标都可以使用 PrimeFaces 组件更好/更容易地实现,请使用它。
选项 1 接近,但选项 2 太过分了。例如,PrimeFaces 没有<p:form>、<p:panelGroup>、<p:outputText> 之类的。
【讨论】:
使用 Primefaces 很容易让您的应用程序具有一致的外观,因为它带有 Themeroller CSS 框架。您可以轻松切换设计。虽然如果应用正确的 css 类,让普通的 jsf 组件看起来像 primefaces 组件并不难。
我认为 primefaces 是一个很棒的组件库。然而,一些组件仍然有问题(例如日期选择器)。因此,如果您在使用 primefaces 组件时遇到一些意外行为,最好有一个 jsf 后备(或来自另一个组件库或 jquery 的替代方案)。
我没有混合不同组件库的经验。知道它们如何交互会很有趣。但这将是另一个问题的主题......
【讨论】: