【发布时间】:2011-07-27 18:06:25
【问题描述】:
在 JSF 1.2 下我需要一些 DIV 的唯一 id,我该如何以一种可以稍后在 Javascript 函数中使用的方式进行此操作?
传统上,我使用 JSF HTML 或 Richfaces 组件,它们会自动使用 JSF 生成唯一的 id,然后使用 rich:clientId() 来解析该 id。我只是还没有找到一个只会给我一个 DIV 的组件。
【问题讨论】:
在 JSF 1.2 下我需要一些 DIV 的唯一 id,我该如何以一种可以稍后在 Javascript 函数中使用的方式进行此操作?
传统上,我使用 JSF HTML 或 Richfaces 组件,它们会自动使用 JSF 生成唯一的 id,然后使用 rich:clientId() 来解析该 id。我只是还没有找到一个只会给我一个 DIV 的组件。
【问题讨论】:
BalusC 关于 <h:panelGroup layout="block"> 生成 div 部分正确,但奇怪的是,您需要包含 style 或 styleClass 元素以确保它生成 div。这是来自documentation 的引用。
如果存在“style”或“styleClass”属性,并且存在“layout”属性且值为“block”,则渲染“div”元素
当您在 h:panelGroup 上放置一个 ID 时,它将在前面加上一个 JSF id。但是,这不适用于 JSF Facelets,您会遇到重复的 ID 问题。
【讨论】:
<h:panelGroup layout="block"> 将呈现 <div>。
当layout 属性被省略并且当它有另一个应该以HTML 结尾的属性时,比如styleClass 等等,它会默认呈现一个<span>。
【讨论】:
您可以按照此问题中的讨论呈现 div, What jsf component can render a div tag?
【讨论】: