Sto utilizzando JSF 2.0. Ho un bean gestito a cui posso accedere tramite la mia pagina xhtml. Dentro il fagiolo ho dichiarato una classe interiore. Posso accedere a ArrayList<String>
di bean gestito ma non a ArrayList<InnerClass>
e ottengo l'errore che la InnerClass non ha una proprietà leggibile. Qualcuno sa cosa c'è che non va?Impossibile accedere alla classe interna nel bean
15
A
risposta
30
Ciò può accadere se la classe interna non è public
. Sarà quindi invisibile ad altre classi esterne al pacchetto (come JSF/EL stesso!). Assicurati che la classe interna sia public
ogni volta che devi accedervi da JSF/EL.
public class Bean {
public class InnerClass {
// ...
}
}
altrimenti verrà interpretato come String
e si otterrà eccezioni confuse come
javax.el.ELException: /test.xhtml: Proprietà 'someProperty' non leggibili su tipo java.lang .String
quando si desidera accedere a #{innerClass.someProperty}
.
Ho trovato questo dopo 2 ore di ricerca di un bug. Immagino che dovrebbero almeno rendere l'eccezione più chiara. La stringa qui si riferisce al tipo atteso (nel mio caso era booleano), che è davvero confuso. – NeplatnyUdaj