有没有办法为h:inputHidden
组件分配动态ID?
EDIT1
我在迭代元素集合时尝试在ui:repeat
标记内分配id。
答案 0 :(得分:3)
无法根据<ui:repeat>
的迭代值设置ID。但无论如何你根本不需要它。默认情况下,它们将根据迭代索引获取动态和唯一ID。
E.g。
<h:form id="form">
<ui:repeat value="#{bean.list}" var="item">
<h:inputHidden id="hidden" value="#{item.value}" />
</ui:repeat>
</h:form>
将在视图渲染时生成此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>
<c:forEach>
1}}在上面的例子中)多次生成HTML。 <h:inputHidden>
将生成多个JSF组件,然后每个组件只生成一次HTML(因此,您最终会在JSF组件树中最终生成多个<h:form id="form">
<c:forEach items="#{bean.list}" var="item">
<h:inputHidden id="#{item.id}" value="#{item.value}" />
</c:forEach>
</h:form>
组件。)
E.g。
<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>
它将在视图构建时基本生成此JSF组件树
<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>
反过来会在视图渲染时生成此HTML
{{1}}
答案 1 :(得分:1)
默认情况下会为其分配动态ID。您还可以指定id="#{..}
来自定义它。
答案 2 :(得分:0)
您也可以动态添加任意随机数(id="#{}"
),但
将 功能相关的ID添加到隐藏组件 ,这将有所帮助
例如,如果是员工表单,您可以添加empid。