Heim  >  Artikel  >  Java  >  Wie rufe ich statische Methoden in JSP/EL auf?

Wie rufe ich statische Methoden in JSP/EL auf?

Linda Hamilton
Linda HamiltonOriginal
2024-11-16 04:23:02111Durchsuche

How to Invoke Static Methods in JSP/EL?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn