JSP/EL での静的メソッドの呼び出し
JSP では、多くの場合、計算を実行したり、Java クラスから静的メソッドにアクセスしたりする必要があります。ただし、式言語 (EL) で静的メソッドを直接呼び出すことはサポートされていません。
シナリオ:
「バランス」属性を持つテーブルがあり、計算したいとします。 「Calculate」クラスの静的メソッドを使用して「amount」という新しい値を作成します。あなたが試したように、JSTL タグ内に埋め込まれたスクリプトレットは推奨されません。
EL 制限:
EL は、JavaBeans として作成したクラスのインスタンス メソッドのみを呼び出すことができます。 。インスタンスの一部ではない静的メソッドには、EL を通じて直接アクセスすることはできません。
解決策:
インスタンスの作成メソッド:
カスタム EL 関数の登録:
インスタンスを使用した例メソッド:
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>
カスタム EL 関数の例:
<!-- 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 -->
以上がJSP/EL で静的メソッドを呼び出すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。