Aufrufen statischer Methoden in JSP/EL
In JSP können statische Methoden nicht direkt in EL-Ausdrücken aufgerufen werden. EL ist darauf ausgelegt, nur Instanzmethoden aufzurufen.
Stellen Sie sich das folgende Szenario vor: Eine JSP-Seite ruft einen „Saldo“-Wert aus einer Datenbank ab und muss darauf basierend einen „Betrag“-Wert berechnen. Die Verwendung von Scriptlets zum Einfügen von Java-Code in JSTL-Tags wird nicht empfohlen, da Scriptlets zugunsten von EL vermieden werden sollten.
Lösungsoptionen
Hierfür gibt es zwei Hauptlösungen Problem:
1. Einschließen der statischen Methode in eine Instanzmethode
Erstellen Sie eine Getter-Methode in Ihrer Java-Bean, die die statische Methode umschließt und den berechneten Wert zurückgibt. Zum Beispiel:
public class MyBean { private double balance; public double getAmount() { return Calculate.getAmount(balance); } // Other getters and setters... }
Verwenden Sie dann auf Ihrer JSP-Seite die Instanzmethode:
<c:forEach var="row" items="${rs.rows}"> Amount: ${row.amount} </c:forEach>
2. Deklarieren der statischen Methode als EL-Funktion
Erstellen Sie eine Datei „functions.tld“, um die statische Methode als EL-Funktion zu definieren. Zum Beispiel:
<taglib> <uri>http://example.com/functions</uri> <function> <name>calculateAmount</name> <function-class>com.example.Calculate</function-class> <function-signature>double getAmount(double)</function-signature> </function> </taglib>
Verwenden Sie auf Ihrer JSP-Seite die EL-Funktion:
<%@taglib uri="http://example.com/functions" prefix="f" %> ... Amount: ${f:calculateAmount(row.balance)}
Das obige ist der detaillierte Inhalt vonWie rufe ich statische Methoden in JSP/EL auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!