JSTL Expression Language Zugriff auf Objekt Eigenschaften

War ich nach einem tutorial heute, dass hatte mir meinen Kopf kratzen für eine Stunde. Bedenken Sie:

public class MyClass {
    public int getTotal() {
        amount = 100;
        return amount;
    }
}

und ein Auszug aus der JSP:

<p>Total: ${objectOfTypeMyClass.total}</p> //object instantiated elsewhere

Nirgendwo im code war eine Instanz-variable namens "insgesamt" immer deklariert oder verwendet werden. Der einzige Verweis auf das Wort "Summe" in das gesamte Projekt (anders als in den JSP) wurde die Methode getTotal().

Also nach einigen verzweifelten letzten verzweifelten Experimente, es scheint, dass die Expression Language wertet ${someObject.var} wie "rufen Sie die getVar() Methode der someObject Objekt.

Arbeitete ich mit diesem langen tutorial für über eine Woche zu denken, dass ${someObject.var} schon sagte "direkt abrufen der gespeicherten Instanz-variable "var" von someObject.

Habe ich es falsch die ganze Zeit und ist meine Beobachtung richtig, dass um den Verweis auf eine Instanz-variable mit EL, Sie haben vor, eine entsprechende getter-Methode namens " getVarname() wo "Varname" ist der name der Instanz Variablen?

Auch, EL scheint zu sein, groß- /Kleinschreibung in dieser Hinsicht. In meinem Beispiel oben, "Gesamt" in ${objectOfTypeMyClass.insgesamt} alle Kleinbuchstaben in denen die Methode getTotal() hat ein großes "T".

Und wenn wir schon dabei sind, warum tun wir das nicht müssen, instanziieren Sie die variable "total"? Ich denke EL ist nicht der Bezug auf eine Instanz-variable,...einfach eine get-Methode?

Was gibt?

  • Betrachten Sie die Registrierung Ihres Kontos. Ihre anderes Konto ist jetzt vollständig entkoppelt. Nicht registrierte Kunden können nur zugegriffen werden/verwendet mit dem selben PC/webbrowser solange die cookies nicht gelöscht.
InformationsquelleAutor ChrisM | 2010-09-22
Schreibe einen Kommentar