p: selectOneMenu no procesa contenido personalizado a través de p: columna en List <String>
Estoy tratando de obtener un Primefaces 5.2 selectOneMenu para mostrar imágenes junto con sus nombres de archivo. Así es como se ve mi xhtml actualmente:
<h:form>
<h:panelGrid id="createPanelGrid" columns="2">
<p:outputLabel value="Service Logo:" />
<p:selectOneMenu value="#{imageBean.selectedImage}" var="l">
<f:selectItem itemLabel="Select a logo" itemValue="" />
<f:selectItems value="#{imageBean.imageList}" var="logo" itemLabel="#{logo}" itemValue="#{logo}" />
<p:column>
<p:graphicImage value="#{imageBean.imageFolder}/#{l}" style="max-width:50px;max-height:50px;" />
</p:column>
<p:column>#{l}</p:column>
</p:selectOneMenu>
</h:panelGrid>
ManagedBean (imageBean) tiene
public List<String> getImageList () {
List<String> imageList = new ArrayList<String>();
File[] files = absoluteImageFolder.listFiles();
for (File file : files) {
imageList.add(file.getName());
}
return imageList;
}
y
private String selectedImage;
public String getSelectedImage() {
return selectedImage;
}
public void setSelectedImage(String selectedImage) {
this.selectedImage = selectedImage;
}
Sin embargo, las imágenes no se muestran en la página web, solo los nombres de archivo (publicaría una captura de pantalla pero no tengo suficiente reputación). No obtengo dos columnas (primero la imagen, luego el nombre del archivo), solo obtengo el nombre del archivo en sí.
Cuando envuelvo el nombre de archivo Strings en un POJO y uso un convertidor, funciona, pero solo con Strings no lo hace.
¿Cómo puedo hacer que esto funcione solo con Strings?