JSF 改变了 f:selectItem 的呈现方式
JSF change how f:selectItem renders
我有一个标签 h:selectManyCheckbox,其中有一个列表循环。对于列表中的每个项目,我都需要一个复选框。不幸的是,复选框 + 标签的格式与 jsf 创建的 table 不对应。我需要在每个项目周围添加一个 div,如下所示:
<div class="form_control var_checkbox">custom
<input type="checkbox" class="checkbox" name="service" id="service_0" data-product="additional_price" data-product-add-price="100.0">
<label class="label" for="service_0">title</label>
<span class="guarantee_price">CHF 100.0</span>
</div>
但是 jsf 是这样渲染的:
<table>
<tbody>
<tr>
<td><input id="addToCart:j_id_29_2:0" type="checkbox" name="addToCart:j_id_29_2" value="0"><label for="addToCart:j_id_29_2:0"> title</label></td>
<td><input id="addToCart:j_id_29_2:1" type="checkbox" name="addToCart:j_id_29_2" value="1"><label for="addToCart:j_id_29_2:1"> titel2</label></td>
</tr>
</tbody>
</table>
这是当前生成它的代码:
<h:selectManyCheckbox value="${addToCartBean.selectedServicesIndexes}">
<c:forEach items="#{productServicesJSFBean.productServicePlusBeanKeySet}" var="productServicePlusKey">
<c:forEach items="#{productServicesJSFBean.productServicePlusBeans[productServicePlusKey]}" var="productServicePlus">
<div class="form_control var_checkbox">
<f:selectItem itemValue="${counter}" itemLabel="${productServicePlus.servicePlusDisplay.title}" >custom </f:selectItem>
</div>
<c:set var="counter" value="${counter + 1}"/>
</c:forEach>
</c:forEach>
</h:selectManyCheckbox>
我尝试手动创建复选框,但 jsf 没有拾取它。我们不能使用 table,它必须是 div 格式。我怎样才能改变 jsf 呈现这些 selectItems 的方式。我不希望在全球范围内使用它,仅适用于这里的人。我该怎么做?
我发这个问题的人发给我这个 SO 问题,我没有通过 google: Render selectManyCheckbox without HTML table 找到。让它与 <h:outputLabel><h:selectBooleanCheckbox>
一起工作
我有一个标签 h:selectManyCheckbox,其中有一个列表循环。对于列表中的每个项目,我都需要一个复选框。不幸的是,复选框 + 标签的格式与 jsf 创建的 table 不对应。我需要在每个项目周围添加一个 div,如下所示:
<div class="form_control var_checkbox">custom
<input type="checkbox" class="checkbox" name="service" id="service_0" data-product="additional_price" data-product-add-price="100.0">
<label class="label" for="service_0">title</label>
<span class="guarantee_price">CHF 100.0</span>
</div>
但是 jsf 是这样渲染的:
<table>
<tbody>
<tr>
<td><input id="addToCart:j_id_29_2:0" type="checkbox" name="addToCart:j_id_29_2" value="0"><label for="addToCart:j_id_29_2:0"> title</label></td>
<td><input id="addToCart:j_id_29_2:1" type="checkbox" name="addToCart:j_id_29_2" value="1"><label for="addToCart:j_id_29_2:1"> titel2</label></td>
</tr>
</tbody>
</table>
这是当前生成它的代码:
<h:selectManyCheckbox value="${addToCartBean.selectedServicesIndexes}">
<c:forEach items="#{productServicesJSFBean.productServicePlusBeanKeySet}" var="productServicePlusKey">
<c:forEach items="#{productServicesJSFBean.productServicePlusBeans[productServicePlusKey]}" var="productServicePlus">
<div class="form_control var_checkbox">
<f:selectItem itemValue="${counter}" itemLabel="${productServicePlus.servicePlusDisplay.title}" >custom </f:selectItem>
</div>
<c:set var="counter" value="${counter + 1}"/>
</c:forEach>
</c:forEach>
</h:selectManyCheckbox>
我尝试手动创建复选框,但 jsf 没有拾取它。我们不能使用 table,它必须是 div 格式。我怎样才能改变 jsf 呈现这些 selectItems 的方式。我不希望在全球范围内使用它,仅适用于这里的人。我该怎么做?
我发这个问题的人发给我这个 SO 问题,我没有通过 google: Render selectManyCheckbox without HTML table 找到。让它与 <h:outputLabel><h:selectBooleanCheckbox>