抱歉这个简单的问题。我正在学习使用JSF 2.2来创建一个表单并尽可能地使它接近普通的HTML5。我有一个ui:重复生成的列表,如下所示:
<ul id="nameLst">
<ui:repeat var="d" value="#{controller.names}" varStatus="status">
<li>
<input
jsf:id="nameTxt"
jsf:binding="#{nameTxt}"
jsf:value="#{d}"
type="hidden" />#{d}
</li>
</ui:repeat>
</ul>
它呈现如下:
<ul id="nameLst">
<li>
<input id="j_idt14:0:nameTxt" name="j_idt14:0:nameTxt" value="Name1" type="hidden">
Name1
</li>
<li>
<input id="j_idt14:1:nameTxt" name="j_idt14:1:nameTxt" value="Name2" type="hidden">
Name2
</li>
</ul>
现在,我正在尝试仅使用JavaScript将名称添加到此列表中。问题是,我如何控制这个生成的id,所以我可以在JavaScript中使用它。主要是,如果列表开始为空,我如何生成此ID,以便可以正确地将其发回给托管bean。
答案 0 :(得分:1)
如何控制此生成的ID,因此我可以在JavaScript
中使用它
只需给它一个固定的id
。
<ui:repeat id="names" ...>
或者,使用jsfc
属性将<ul>
变为<ui:repeat>
。
<ul id="names" jsfc="ui:repeat" value="#{bean.names}" var="name">
<li>
<input jsf:id="name" type="hidden" value="#{name}" />
</li>
</ul>
主要是,如果列表开始为空,我该如何生成此ID,以便可以正确地将其发回给托管bean
使用JSF代替JS。可以在此处找到一个示例:How to dynamically add JSF components