2012-07-05 25 views

Antwort

19

${foo.class.name} gibt den vollqualifizierten Namen foo zurück.

Aber instanceof ist bereits etwas, das Sie selten in einem Well-Design-OO-Programm verwenden sollten, sollte es noch weniger in der JSP EL verwendet werden, wo Methoden dynamisch ohne Berücksichtigung des eigentlichen Typs aufgerufen werden, und wo das Endziel sollte nur um Markup zu generieren.

+2

Vielen Dank. Aber '$ {foo.class.name}' scheint unter Tomcat7 nicht zu funktionieren, bis zusätzliche Konfigurationsänderungen vorgenommen werden, zu denen ich leider keine Berechtigung habe. Die Überprüfung des Klassennamens erfolgt in einer Tabelle tagx-Datei, die für mehrere Stellen arbeitet. Jetzt muss ich jedoch für eine bestimmte Tabelle den Objektklassennamen überprüfen, um seinen Feldwert auszugeben. Ich weiß nicht, wie ich das mit einer besseren Idee in Frage stellen könnte. – Dreamer

+9

In tomcat 7 (also mit JSP EL 2.2) können Sie tatsächlich '$ {foo.getClass(). Name}' und es funktioniert ... –

+7

Wenn Sie es in Tomcat 6 und 7 arbeiten möchten, haben Sie zwei Möglichkeiten: - Verwenden Sie $ {foo ['class']. name}, das in beiden Versionen funktioniert - ODER konfigurieren Sie Tomcat 7, um das alte Format mit -Dorg.apache.el.parser.SKIP_IDENTIFIER_CHECK = true zu akzeptieren –