Qual è la sintassi per chiamare list.size() in un modello Facelets JSF 2.0 (ad esempio, utilizzando un elemento h: outputText)?Come si chiama List.size() da un modello di faccetta JSF 2.0?
risposta
ne dite di questo:
<h:outputText value="#{fn:length(someBean.someList)}" />
Avrai bisogno di fare riferimento al functions
taglib nella tua pagina JSF (URI: http://java.sun.com/jsp/jstl/functions
).
Non è un problema esattamente con JSF 2.0. Le specifiche JSF richiedono ancora una classe conforme alle specifiche del bean. Le classi di raccolta non lo fanno con il metodo .size()
. Dovrebbe essere ancora .getSize()
. Data la necessità di un modo "standard" per accedere ai valori delle classi, non lo faremo mai più in fretta in JSF. Qualcuno ha bisogno di fissare le classi di raccolta.
IC ... Speravo che avessero rielaborato la sintassi delle espressioni per consentire chiamate di metodo. Potrebbe essere abusato, ma potrebbe facilmente aggirare casi come questo. :) Ancora non capisco perché il designer della classe di raccolta abbia scelto di fare le cose in questo modo. – jsight
Basta provare #{myBean.myList.size()}
Questo non funzionerebbe con standard el. Ci sono però delle estensioni el (come jboss el) che permettono questa notazione. –
Funzionerà su qualsiasi Java Application Server EE 6 – Lincoln
Apparentemente non è il caso (con mio stupore): vedere http://community.jboss.org/thread/173971 – Kawu
Nota: Lo spazio dei nomi specifica per "fn" si aggiunge in questo modo:
<html xmlns="http://www.w3.org/1999/xhtml"
...
xmlns:fn="http://java.sun.com/jsp/jstl/functions">
Eventuali duplicati: http://stackoverflow.com/questions/206161/jsf- lunghezza lista – seth
@seth - Sebbene contenga una risposta ragionevole (che dovrebbe funzionare con JSF 2.0, sebbene la risposta sia precedente), sto facendo questa domanda specificatamente per scoprire se ci sono aggiornamenti a JSF 2.0 che potrebbero influenzare la soluzione. :) – jsight