Sto cercando di ottenere un Primefaces 5.2 selectOneMenu per visualizzare le immagini insieme ai relativi nomi di file. Questo è ciò che il mio XHTML attualmente si presenta come:p: selectOneMenu non esegue il rendering di contenuto personalizzato tramite p: column su List <String>
<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>
Il ManagedBean (imageBean) ha
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;
}
Tuttavia, le immagini non sono resi sulla pagina web, solo i nomi dei file (vorrei pubblicare uno screenshot ma non ho abbastanza reputazione). Non ottengo due colonne (prima l'immagine, poi il nome del file), ho solo il nome del file stesso.
Quando avvolgo il nome del file String in un POJO e utilizzo un convertitore, funziona, ma solo con Stringhe non funziona.
Come posso farlo funzionare con solo stringhe?
Non ci sono 404s nel registro - anche gli stessi URL funzionano quando uso una classe wrapper attorno alle stringhe filename . Se avessi trovato un indizio nei log che potevo interpretare, non avrei postato. – Ginkobonsai
Scusa, non intendo dire che non ci siano indizi nei registri, solo che non riesco a individuarne alcuno. Puoi darmi un suggerimento su cosa sto cercando (oltre gli 404, per i quali ho controllato)? Inoltre, ciò che mi confonde è che cambiare le cose sul lato server (aggiungendo la classe wrapper) lo fa funzionare. – Ginkobonsai
No, l'elemento desiderato non si trova nell'output HTML, ma viene omesso. Invece, ottengo solo il testo (nome file).Se uso la classe wrapper, ottengo il tag senza problemi. – Ginkobonsai