什么时候应该使用 JSF 组件,什么时候应该使用 html 标签? [关闭]

Posted

技术标签:

【中文标题】什么时候应该使用 JSF 组件,什么时候应该使用 html 标签? [关闭]【英文标题】:When should I use JSF components and when should I use html tags? [closed] 【发布时间】:2011-07-19 13:11:35 【问题描述】:

我想用 JSF 设计一个网页。

我可以使用<h:panelGroup><h:panelGrid> 来布局页面的某些部分,或者,我可以使用<p><div> 等代替。

只是想知道哪个更适合最佳实践。

谢谢!

【问题讨论】:

【参考方案1】:

我最近的实践案例:

1. 对于<p><div>,您不能使用rendered 属性

2. 使您的代码更加结构化和稳固 - 便于您的代码的其他用户阅读

【讨论】:

【参考方案2】:

建议不要将 jsf 与 html 混为一谈。背景:那么您的 jsf 页面可以呈现为与 html 不同的内容。但据我所知,到目前为止,只有 html 的渲染器(尽管您可以编写自己的)。

在实践中,我发现很难遵循这个建议,最终混合了 html 和 jsf,例如对于标题或换行符,我使用 html。

【讨论】:

【参考方案3】:

如果您不需要 JSF 标签提供的功能,我更喜欢使用纯 HTML。

例如,<h:panelGroup> 有一个 rendered 属性,允许您绑定到支持 bean 布尔变量以有条件地显示输出,但使用 <div><span>,您不能这样做。

<h:panelGroup> 默认会生成一个<span>。如果您更喜欢<div>,那么您可以使用<h:panelGroup layout="block">。它将为您生成一个<div>

【讨论】:

第一句话总结了一切。它的开销也更少。 我发现没有layoutstylestyleClass 属性的<h:panelGroup/> 标签既不会呈现<div/>,也不会呈现<span/>。它可以纯粹用作使用rendered 属性显示/隐藏页面部分的一种方式。【参考方案4】:

作为一般规则,我在布局页面中混合使用 betweek HTML 和 Facelets 标签。但是对于实际的内容页面,我尝试仅使用我选择的 JSF 库(JSF + RichFaces)中可用的 JSF 标记。

这样我可以更好地控制要显示和隐藏的元素,以及每个元素中的内容,但我仍然可以在 facelets 模板文件中硬编码我的主页布局。

【讨论】:

以上是关于什么时候应该使用 JSF 组件,什么时候应该使用 html 标签? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

什么时候应该在 Angular 中使用 styles.scss,什么时候应该使用组件的 scss

什么时候应该使用组件数据而不是 vuex 状态?

什么时候应该在 Flutter 中使用 BLoC 模式?

MVC 6 视图组件与部分视图:有啥区别?啥时候应该使用每个? [关闭]

Spring 啥时候使用服务或组件? [复制]

什么时候应该在 Material-UI 中使用排版?