Appel de méthodes statiques en JSP/EL
En JSP, vous devez souvent effectuer des calculs ou accéder à des méthodes statiques à partir de classes Java. Cependant, l'appel de méthodes statiques directement dans Expression Language (EL) n'est pas pris en charge.
Scénario :
Vous disposez d'une table avec un attribut « solde » et souhaitez calculer une nouvelle valeur appelée "montant" en utilisant une méthode statique dans la classe "Calculer". Les scriptlets intégrés dans les balises JSTL, comme vous l'avez essayé, ne sont pas recommandés.
Restriction EL :
EL ne peut invoquer que des méthodes d'instance sur des classes que vous avez créées en tant que JavaBeans. . Les méthodes statiques, qui ne font pas partie d'une instance, ne sont pas directement accessibles via EL.
Solutions :
Créer une instance Méthode :
Enregistrez une fonction EL personnalisée :
Exemple avec la méthode d'instance :
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>
Exemple avec EL personnalisé Fonction :
<!-- 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 -->
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!