自定义selectItems

时间:2011-12-14 09:03:40

标签: jsf java-ee jsf-2 icefaces icefaces-2

我想自定义 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>

请告知如何做到这一点?

1 个答案:

答案 0 :(得分:1)

您无法以<f:selectItems>方式嵌套UI组件。但是,我发现您使用的是ICEfaces,那么您应该可以将<ice:selectManyCheckbox layout="spread"><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)

另见: