作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有没有办法将动态 ID 分配给 h:inputHidden
组件?
编辑1
在遍历元素集合时,我试图在 ui:repeat
标记内分配 id。
最佳答案
无法根据 <ui:repeat>
的迭代值设置 ID .但无论如何你都不需要它。默认情况下,它们将根据迭代索引获得动态且唯一的 ID。
例如
<h:form id="form">
<ui:repeat value="#{bean.list}" var="item">
<h:inputHidden id="hidden" value="#{item.value}" />
</ui:repeat>
</h:form>
将在 View 呈现期间生成此 HTML
<form id="form" name="form">
<input type="hidden" id="form:0:hidden" name="form:0:hidden" value="item1value" />
<input type="hidden" id="form:1:hidden" name="form:1:hidden" value="item2value" />
<input type="hidden" id="form:2:hidden" name="form:2:hidden" value="item3value" />
</form>
如果你想手动控制ID,你需要使用<c:forEach>
相反,因为 <ui:repeat>
不生成多个 JSF 组件,但让其子组件(在上例中为单个 <h:inputHidden>
)多次生成 HTML。 <c:forEach>
将生成多个 JSF 组件,然后每个组件仅生成一次 HTML(因此您最终会在 JSF 组件树中得到多个 <h:inputHidden>
组件)。
例如
<h:form id="form">
<c:forEach items="#{bean.list}" var="item">
<h:inputHidden id="#{item.id}" value="#{item.value}" />
</c:forEach>
</h:form>
这基本上会在 View 构建期间生成此 JSF 组件树
<h:form id="form">
<h:inputHidden id="item1id" value="#{bean.list[0].value}" />
<h:inputHidden id="item2id" value="#{bean.list[1].value}" />
<h:inputHidden id="item3id" value="#{bean.list[2].value}" />
</h:form>
这将在 View 渲染期间生成此 HTML
<form id="form" name="form">
<input type="hidden" id="form:item1id" name="form:item1id" value="item1value" />
<input type="hidden" id="form:item2id" name="form:item2id" value="item2value" />
<input type="hidden" id="form:item3id" name="form:item3id" value="item3value" />
</form>
关于java - 遍历集合时将动态 ID 分配给隐藏字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10314797/
我是一名优秀的程序员,十分优秀!