Maison > Java > javaDidacticiel > le corps du texte

Comment appeler des méthodes statiques dans JSP/EL ?

Linda Hamilton
Libérer: 2024-11-16 04:23:02
original
120 Les gens l'ont consulté

How to Invoke Static Methods in JSP/EL?

Appel de méthodes statiques en JSP/EL

En JSP, les méthodes statiques ne peuvent pas être invoquées directement dans les expressions EL. EL est conçu pour invoquer uniquement des méthodes d'instance.

Considérez le scénario suivant : une page JSP récupère une valeur de "solde" à partir d'une base de données et doit calculer une valeur de "montant" en fonction de celle-ci. L'utilisation de scriptlets pour insérer du code Java dans les balises JSTL n'est pas recommandée, car les scriptlets doivent être évités au profit d'EL.

Options de solution

Il existe deux solutions principales à ce problème. problème :

1. Encapsuler la méthode statique dans une méthode d'instance

Créez une méthode getter dans votre bean Java qui encapsule la méthode statique et renvoie la valeur calculée. Par exemple :

public class MyBean {
    private double balance;
    
    public double getAmount() {
        return Calculate.getAmount(balance);
    }
    
    // Other getters and setters...
}
Copier après la connexion

Ensuite, dans votre page JSP, utilisez la méthode d'instance :

<c:forEach var="row" items="${rs.rows}">
    Amount: ${row.amount}
</c:forEach>
Copier après la connexion

2. Déclarer la méthode statique en tant que fonction EL

Créez un fichier function.tld pour définir la méthode statique en tant que fonction EL. Par exemple :

<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>
Copier après la connexion

Dans votre page JSP, utilisez la fonction EL :

<%@taglib uri="http://example.com/functions" prefix="f" %>
...
Amount: ${f:calculateAmount(row.balance)}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal