Java 如何动态设置h:selectBooleanCheckbox的id?
我有Java 如何动态设置h:selectBooleanCheckbox的id?,java,jsf-2,Java,Jsf 2,我有 (其中wai:collectionIter是一个自定义标记) 但是相应的html代码如下所示 <wai:collectionIter value="#{listModel.listRows}" valueVar="listRow" odd="odd" even="even" styleVar="rowStyle"> <tr class="#{rowStyle}"> <td> <h:selectBooleanCheckbo
(其中wai:collectionIter是一个自定义标记)
但是相应的html代码如下所示
<wai:collectionIter value="#{listModel.listRows}" valueVar="listRow" odd="odd" even="even" styleVar="rowStyle">
<tr class="#{rowStyle}">
<td>
<h:selectBooleanCheckbox value="#{listRow.rowSelected}" disabled="#{detailModel.readOnly}">
<c:set target="#{component}" property="id" value="#{listRow.rowData.name}"/>
</h:selectBooleanCheckbox>
</td>
<ui:insert name="columnData"/>
</tr>
</wai:collectionIter>
弗朗西斯科
你可以试试这个:
<td>
<input id="BusinessUnitNumber" type="checkbox" name="BusinessUnitNumber"
</td>
只需使用标准JSF迭代组件,而不是模糊的自定义标记。例如,
:
它会担心ID的唯一性。它会将行索引前置到给定的固定ID,如下所示:
您可以通过id=“#{listRow.rowData.name}”
使其成为动态的,但这不是必需的。你好,布鲁诺,对不起,我忘记了第一段截取的代码中的一段(重要的)代码。Francesco,当我使用jsf时,组件id区域是动态的,您将配置好的id放在类似于我发布的代码的地方。试着回答一些疑问。布鲁诺,我真的不明白你的意思,所以我知道你想要我把你的代码放进去<代码>
。我这样做了,现在我得到了“javax.servlet.ServletException:Empty id attribute is not allowed”(不允许使用空id属性)。您将得到的最接近的结果类似于searchForm:BusinessUnitNumber,因为searchForm用作容器,id将被嵌套。这可以更好地解释。
<td>
<input id="BusinessUnitNumber" type="checkbox" name="BusinessUnitNumber"
</td>
<h:selectBooleanCheckbox id="#{listRow.rowData.name}" value="#{listRow.rowSelected}" disabled="#{detailModel.readOnly}" />