Пользовательские 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)