JSF改变了f:selectItem的呈现方式

时间:2015-03-26 10:26:35

标签: spring jsf

我有一个标签h:selectManyCheckbox,其中包含一个循环列表。对于列表中的每个项目,我需要一个复选框。不幸的是,复选框+标签的格式与jsf创建的表格不对应。我需要在每个项目周围加一个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">&nbsp;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">&nbsp;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没有拿起它。我们不能使用表格,它必须是div格式。如何更改jsf渲染这些selectItem的方式。我不想全球化,只为那里的人。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

我发送此问题的人向我发送了这个问题,我没有通过谷歌找到Render selectManyCheckbox without HTML table。让它与<h:outputLabel><h:selectBooleanCheckbox>

一起使用