Jsf 什么是标签&x27;s';对于';selectBooleanCheckbox的id

Jsf 什么是标签&x27;s';对于';selectBooleanCheckbox的id,jsf,jsf-2,Jsf,Jsf 2,如何引用outputLabel中的每个复选框,以便当我单击项目的标签时,它实际上与单击复选框时相同 <rich:dataGrid value="#{all}" var="item" columns="3"> <h:outputLabel value="#{item.name}" for="what_here?" /> <h:selectBooleanCheckbox value="#{item.selectedForLaterUse}" id="it

如何引用outputLabel中的每个复选框,以便当我单击项目的标签时,它实际上与单击复选框时相同

<rich:dataGrid value="#{all}" var="item" columns="3">
    <h:outputLabel value="#{item.name}" for="what_here?" />
    <h:selectBooleanCheckbox value="#{item.selectedForLaterUse}" id="item#{item.id}" />
</rich:dataGrid>
但是由于jsf id是相对的,所以它不会工作,对吗


还有一个选项可以使用selectManyCheckbox,但它似乎没有提供使用列的选项。

您不需要这样做。JSF为您做这件事。只要在同一范围内指定一个固定ID即可

<rich:dataGrid value="#{all}" var="item" columns="3">
    <h:outputLabel value="#{item.name}" for="item" />
    <h:selectBooleanCheckbox value="#{item.selectedForLaterUse}" id="item" />
</rich:dataGrid>
<rich:dataGrid value="#{all}" var="item" columns="3">
    <h:outputLabel value="#{item.name}" for="item" />
    <h:selectBooleanCheckbox value="#{item.selectedForLaterUse}" id="item" />
</rich:dataGrid>
<table id="form:grid" class="rf-dg">
  <tbody id="form:grid:dgb" class="rf-dg-body">
    <tr class="rf-dg-r">
      <td class="rf-dg-c">
        <label for="form:grid:0:item">one</label>
        <input id="form:grid:0:item" type="checkbox" name="form:grid:0:item" />
      </td>
      <td class="rf-dg-c">
        <label for="form:grid:1:item">two</label>
        <input id="form:grid:1:item" type="checkbox" name="form:grid:1:item" />
      </td>
      <td class="rf-dg-c">
        <label for="form:grid:2:item">three</label>
        <input id="form:grid:2:item" type="checkbox" name="form:grid:2:item" />
      </td>
    </tr>
  </tbody>
</table>