Пользовательские selectItems

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

Решение

Вы не можете вкладывать компоненты пользовательского интерфейса в <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)

Смотрите также:

Другие вопросы по тегам