1

我想自定义selectItems 以在每个复选框旁边有条件地显示图像,所以首先我尝试显示所有复选框的图像,但它只显示一次,这就是我尝试的:

<h:selectManyCheckbox value="#{myBean.checkboxesArry}" layout="pageDirection">

              <f:selectItems value="#{myBean.mapOfCheckBoxes}" var="entry">                            
                <label>           
                <ice:graphicImage url="/resources/images/myImage.bmp"/>            
                <b>#{entry.value}</b>           
                </label>
              </f:selectItems>

            </h:selectManyCheckbox>

请告知如何做到这一点?

4

1 回答 1

1

您不能以<f:selectItems>这种方式嵌套 UI 组件。但是,我看到您正在使用 ICEfaces,然后您应该可以<ice:selectManyCheckbox layout="spread">与 with 结合使用<ice:checkbox>

<ice:selectManyCheckbox id="foo" value="#{myBean.checkboxesArry}" layout="spread">
    <f:selectItems value="#{myBean.mapOfCheckBoxes}" />
</ice:selectManyCheckbox>

<c:forEach items="#{myBean.mapOfCheckBoxes}" var="entry" varStatus="loop">
    <ice:checkbox for="foo" index="#{loop.index}" />
    <ice:graphicImage url="/resources/images/myImage.bmp" />
    <b>#{entry.value}</b>
</c:forEach>

(未经测试,因为我不使用 ICEfaces,但上述构造适用于 Tomahawk,ICEfaces 基本上从中复制了实现;您也可以使用<ui:repeat>,但它只支持Map自 JSF 2.1 起)

也可以看看:

于 2011-12-14T11:58:41.400 回答