p: selectOneMenu não renderiza conteúdo personalizado via coluna p: na lista <>
Estou tentando obter um selectOneMenu do Primefaces 5.2 para exibir imagens junto com seus nomes de arquivo. É assim que meu xhtml se parece atualmente:
<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>
O ManagedBean (imageBean) possui
public List<String> getImageList () {
List<String> imageList = new ArrayList<String>();
File[] files = absoluteImageFolder.listFiles();
for (File file : files) {
imageList.add(file.getName());
}
return imageList;
}
e
private String selectedImage;
public String getSelectedImage() {
return selectedImage;
}
public void setSelectedImage(String selectedImage) {
this.selectedImage = selectedImage;
}
No entanto, as imagens não são renderizadas na página da web, apenas os nomes dos arquivos (eu publicaria uma captura de tela, mas não tenho reputação suficiente). Não recebo duas colunas (primeiro a imagem, depois o nome do arquivo), apenas o próprio nome do arquivo.
Quando envolvo o nome do arquivo Strings em um POJO e uso um conversor, ele funciona - mas apenas com o Strings não funciona.
Como posso fazer isso funcionar apenas com Strings?