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

Bagaimanakah saya boleh menggunakan kaedah statik dalam JSP/EL?

Barbara Streisand
Lepaskan: 2024-11-20 11:20:02
asal
567 orang telah melayarinya

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
}
Salin selepas log masuk
<c:forEach var="row" items="${rs.rows}">
    Amount: ${row.amount}  <!-- Invoke instance method -->
</c:forEach>
Salin selepas log masuk

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>
Salin selepas log masuk
<%@taglib uri="http://example.com/functions" prefix="f"%>
...
Amount: ${f:calculateAmount(row.balance)}  <!-- Invoke custom EL function -->
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan