2 Stimmen

EL: Wie druckt man statische Variablen?

Ich habe die folgende JSP-Seite:

<%@taglib uri="http://java.sun.com/jstl/core" prefix="c"%>
test #1: value of PI is <c:out value="${java.lang.Math.PI}" />.
test #2: value of PI is ${java.lang.Math.PI}.
test #3: value of PI is <%= java.lang.Math.PI %>.

Irgendwie hat nur Test Nr. 3 eine Ausgabe. Warum gibt EL die Werte der statischen Variablen nicht aus?

5voto

Rachel Punkte 3571

Bei jedem Ihrer Beispiele geschieht genau das:

<c:out value="${java.lang.Math.PI}" />

Es wird nach der Variablen oder Bean mit dem Namen java gesucht und versucht, eine Methode namens lang auszuführen. Wahrscheinlich gibt es in Ihrer JSP-Seite keine Variable oder Bean mit dem Namen Java, so dass es keine Ausgabe gibt.

${java.lang.Math.PI}

Dies ist dasselbe wie oben, nur eben in EL geschrieben. Es ist dasselbe, weil es nach einer Variablen oder Bean namens java sucht.

<%= java.lang.Math.PI %>

Das bedeutet, dass während der JSP-Kompilierung java.lang.Math.PI berechnet und in die JSP geschrieben wird. Wenn Sie sich die kompilierte JSP ansehen, sehen Sie den Wert dort geschrieben.

Im dritten Beispiel wird der Ausdruck so ausgewertet, als befände man sich in einer Java-Klasse. Die ersten beiden Beispiele erwarten, dass "java" ein Variablenname ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X