Aufrufen statischer Methoden in JSP/EL
In JSP müssen Sie häufig Berechnungen durchführen oder auf statische Methoden aus Java-Klassen zugreifen. Das Aufrufen statischer Methoden direkt in Expression Language (EL) wird jedoch nicht unterstützt.
Szenario:
Sie haben eine Tabelle mit einem „Balance“-Attribut und möchten eine Berechnung durchführen einen neuen Wert namens „amount“ mithilfe einer statischen Methode in der Klasse „Calculate“. In JSTL-Tags eingebettete Scriptlets, wie Sie es versucht haben, werden nicht empfohlen.
EL-Einschränkung:
EL kann Instanzmethoden nur für Klassen aufrufen, die Sie als JavaBeans erstellt haben . Auf statische Methoden, die nicht Teil einer Instanz sind, kann nicht direkt über EL zugegriffen werden.
Lösungen:
Eine Instanz erstellen Methode:
Registrieren Sie eine benutzerdefinierte EL-Funktion:
Beispiel mit Instanzmethode:
public class Bean { private double balance; public double getAmount() { return Calculate.getAmount(balance); } // ...other methods }
<c:forEach var="row" items="${rs.rows}"> Amount: ${row.amount} <!-- Invoke instance method --> </c:forEach>
Beispiel mit benutzerdefiniertem EL Funktion:
<!-- functions.tld --> <taglib> ... <function> <name>calculateAmount</name> <function-class>com.example.Calculate</function-class> <function-signature>double getAmount(double)</function-signature> </function> ... </taglib>
<%@taglib uri="http://example.com/functions" prefix="f"%> ... Amount: ${f:calculateAmount(row.balance)} <!-- Invoke custom EL function -->
Das obige ist der detaillierte Inhalt vonWie kann ich statische Methoden in JSP/EL aufrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!