Rumah >Java >javaTutorial >Bagaimanakah saya boleh menggunakan kaedah statik dalam JSP/EL?

Bagaimanakah saya boleh menggunakan kaedah statik dalam JSP/EL?

Barbara Streisand
Barbara Streisandasal
2024-11-20 11:20:02555semak imbas

How can I invoke static methods in JSP/EL?

Memanggil Kaedah Statik dalam JSP/EL

Dalam JSP, anda selalunya perlu melakukan pengiraan atau mengakses kaedah statik daripada kelas Java. Walau bagaimanapun, menggunakan kaedah statik secara langsung dalam Bahasa Ungkapan (EL) tidak disokong.

Senario:

Anda mempunyai jadual dengan atribut "keseimbangan" dan ingin mengira nilai baharu yang dipanggil "jumlah" menggunakan kaedah statik dalam kelas "Kira". Skrip kecil yang dibenamkan dalam teg JSTL, seperti yang anda telah cuba, tidak disyorkan.

Sekatan EL:

EL hanya boleh menggunakan kaedah contoh pada kelas yang telah anda buat sebagai JavaBeans . Kaedah statik, yang bukan sebahagian daripada tika, tidak boleh diakses terus melalui EL.

Penyelesaian:

  1. Buat Contoh Kaedah:

    • Buat kaedah dalam kacang yang membalut statik kaedah, menghantar parameter yang diperlukan.
    • Gunakan kaedah contoh dalam EL dan bukannya kaedah statik.
  2. Daftar Fungsi EL Tersuai:

    • Buat fail deskriptor perpustakaan teg (TLD) yang mengisytiharkan tersuai Fungsi EL.
    • Konfigurasikan fail TLD dalam halaman JSP anda menggunakan <%@taglib...%> arahan.
    • Gunakan fungsi EL tersuai, yang secara dalaman menggunakan kaedah statik, dalam ungkapan EL anda.

Contoh dengan Kaedah Contoh:

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>

Contoh dengan EL Tersuai Fungsi:

<!-- 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 -->

Atas ialah kandungan terperinci Bagaimanakah saya boleh menggunakan kaedah statik dalam JSP/EL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn