p: selectOneMenu rendert benutzerdefinierten Inhalt nicht über die Spalte p: in List <String>
Ich versuche, ein Primefaces 5.2 selectOneMenu zu erstellen, um Bilder mit ihren Dateinamen anzuzeigen. So sieht mein xhtml aktuell aus:
<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>
Die ManagedBean (imageBean) hat
public List<String> getImageList () {
List<String> imageList = new ArrayList<String>();
File[] files = absoluteImageFolder.listFiles();
for (File file : files) {
imageList.add(file.getName());
}
return imageList;
}
un
private String selectedImage;
public String getSelectedImage() {
return selectedImage;
}
public void setSelectedImage(String selectedImage) {
this.selectedImage = selectedImage;
}
Die Bilder werden jedoch nicht auf der Webseite gerendert, nur die Dateinamen (ich würde einen Screenshot posten, aber ich habe nicht genug Ansehen). Ich erhalte keine zwei Spalten (zuerst das Bild, dann den Dateinamen), sondern nur den Dateinamen selbst.
Wenn ich den Dateinamen Strings in ein POJO einpacke und einen Konverter verwende, funktioniert das - aber nur mit Strings.
Wie kann ich erreichen, dass dies nur mit Strings funktioniert?