Мне нужно показать список selectManyCheckbox
в 4 столбцах, но проблема в том, что этот компонент генерирует таблицу, поэтому я понятия не имею, как определить столбцы.
Я работаю с PF 3.4, не могу обновиться до PF 4.x. У вас есть какое-нибудь решение для этого?
ОТРЕДАКТИРОВАНО
Теперь у меня есть это в моем коде
<h:form id="formAdminAccesosXPerfil">
<h:panelGrid title="Accesos" columns="5">
<c:forEach items="#{accesosXPerfilMB.listadoAcceso}" var="availableItem" varStatus="loop">
<h:panelGroup>
<p:selectBooleanCheckbox id="box_#{loop.index}" value="#{accesosXPerfilMB.checkBoxItems[availableItem]}" />
<h:outputLabel for="box_#{loop.index}" value="#{availableItem.nombre}" />
</h:panelGroup>
</c:forEach>
</h:panelGrid>
Managebean, который @ViewScoped
Я изменил предложенный метод, потому что он не работал для меня...
от:
public void save() {
List<E> selectedItems = checkboxItems.entrySet().stream()
.filter(e -> e.getValue() == Boolean.TRUE)
.map(e -> e.getKey())
.collect(Collectors.toList());
// ...
}
к этому:
public void guardarAccesos(){
try {
System.out.println("Size: "+getCheckBoxItems().entrySet().size());
for(BpAcceso acceso:getCheckBoxItems().keySet()){
System.out.println("Acceso Seleccionado: "+acceso.getNombre());
}
} catch (Exception e) {
e.printStackTrace();
}
}
Но я не получаю ни одного выбранного элемента на hashMap. Просто чтобы убедиться, что я использую jdk1.6