什么时候应该使用 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>
。
【讨论】:
第一句话总结了一切。它的开销也更少。 我发现没有layout
、style
或styleClass
属性的<h:panelGroup/>
标签既不会呈现<div/>
,也不会呈现<span/>
。它可以纯粹用作使用rendered
属性显示/隐藏页面部分的一种方式。【参考方案4】:
作为一般规则,我在布局页面中混合使用 betweek HTML 和 Facelets 标签。但是对于实际的内容页面,我尝试仅使用我选择的 JSF 库(JSF + RichFaces)中可用的 JSF 标记。
这样我可以更好地控制要显示和隐藏的元素,以及每个元素中的内容,但我仍然可以在 facelets 模板文件中硬编码我的主页布局。
【讨论】:
以上是关于什么时候应该使用 JSF 组件,什么时候应该使用 html 标签? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
什么时候应该在 Angular 中使用 styles.scss,什么时候应该使用组件的 scss