gpt4 book ai didi

java - 遍历集合时将动态 ID 分配给隐藏字段

转载 作者:行者123 更新时间:2023-11-29 18:28:52 25 4
gpt4 key购买 nike

有没有办法将动态 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com