2009-07-02 2 views
7

Ist es möglich, in JSP die Art von Objekt in Liste zu bekommen, so wie wirIn JSP, wie den Typ des Objekts in einer Liste zu identifizieren?

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

oder ist es möglich, so etwas zu erreichen in Java zu tun:

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

ich nicht tun Ich bevorzuge Scriptlets, aber wenn es nicht möglich ist, auf Scriptlets zu verzichten, dann lassen Sie mich auch diese Lösung wissen.

  • unter der Annahme, dass alle Objekte in der Liste vom selben Typ sind.

Antwort

12

JSTL verwenden, können Sie alles abrufen, die JavaBean-Spezifikation verwendet - wenn Sie verwenden möchten getClass() in Java, würden Sie .class- in JSTL verwenden:

Dies würde Ihre Klassennamen schreiben:

${myList[0].class} 
+4

Ordentlich. $ {myList [0] .class.name} wäre aber der Klassenname (ein einfacher toString wird "class java.lang.String" oder "interface java.util.Map" ausgeben) – Thilo

9

Ich weiß, dass diese Frage 6 Jahre alt ist; Wenn jedoch jemand, der nach der Java-Klasse eines Objekts in JSP sucht, diese Frage findet, beachte, dass aktuelle Versionen von JSP diese Notation tatsächlich nicht zulassen. Sie müssten

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

stattdessen tun. Wenn Sie den Klassennamen als Zeichenfolge verwenden möchten, funktioniert diese Methode gut mit der oben erwähnten Methode .name. Sie tun würden

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

Sie können mehr hier herausfinden: das jemand hilft https://bz.apache.org/bugzilla/show_bug.cgi?id=50120

Hoffnung!

+0

Ich frage mich, warum sie das so unintuitiv machen würden. – killjoy