Пользовательские selectItems - PullRequest
1 голос
/ 14 декабря 2011

я хочу настроить 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 Ответ

1 голос
/ 14 декабря 2011

Вы не можете таким образом вкладывать компоненты пользовательского интерфейса в <f:selectItems>.Однако я вижу, что вы используете 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,но приведенная выше конструкция работает для томагавка, из которого ICEfaces в основном скопировала реализацию; вы также можете использовать <ui:repeat>, но она поддерживает только Map начиная с JSF 2.1)

См. также:

...