2009-07-02 15 views
7

E 'possibile in JSP per ottenere il tipo di oggetto a List, proprio come facciamo in JavaIn JSP, come identificare il tipo di oggetto presente in un elenco?

myDataBind.getResultsList().get(0).getClass(); 

o è possibile ottenere qualcosa di simile:

if (myDataBind.getResultsList().get(0) instanceOf MyClass) { 
    doThis; 
} 

non lo faccio preferisci scriptlet, ma se non è possibile fare a meno di scriptlet, per favore fammi sapere anche quella soluzione.

  • presupponendo che tutti gli oggetti nell'elenco siano dello stesso tipo.

risposta

12

Utilizzando JSTL, è possibile recuperare tutto quello che utilizza le specifiche JavaBean - se si desidera utilizzare getClass() in Java, si usa .class in JSTL:

Questo sarebbe scrivere il vostro nome di classe:

${myList[0].class} 
+4

Neat. $ {myList [0] .class.name} sarebbe il nome della classe (un semplice toString stamperà "classe java.lang.String" o "interfaccia java.util.Map") – Thilo

9

Mi rendo conto che questa domanda ha 6 anni; tuttavia, se qualcuno alla ricerca di come ottenere la classe Java di un oggetto in JSP trova questa domanda, nota che le versioni correnti di JSP in realtà non consentono questa notazione. Dovresti farlo

${myList[0]['class']} 

invece. Se vuoi che il nome della classe sia una stringa, questo metodo funziona bene con il metodo .name sopra menzionato. Fareste

${myList[0]['class'].name} 

Per saperne di più qui: https://bz.apache.org/bugzilla/show_bug.cgi?id=50120

Spero che questo aiuti qualcuno!

+0

Mi chiedo perché lo renderebbero così intuitivo. – killjoy