JSP/EL での静的メソッドの呼び出し
JSP では、静的メソッドを EL 式で直接呼び出すことはできません。 EL はインスタンス メソッドのみを呼び出すように設計されています。
次のシナリオを考えてみましょう。JSP ページはデータベースから「残高」値を取得し、それに基づいて「金額」値を計算する必要があります。スクリプトレットを使用して JSTL タグに Java コードを挿入することは推奨されません。EL を優先してスクリプトレットは避けるべきです。
ソリューション オプション
これには主に 2 つの解決策があります。問題:
1.インスタンス メソッドでの静的メソッドのラップ
静的メソッドをラップし、計算された値を返すゲッター メソッドを Java Bean 内に作成します。例:
public class MyBean { private double balance; public double getAmount() { return Calculate.getAmount(balance); } // Other getters and setters... }
次に、JSP ページでインスタンス メソッドを使用します:
<c:forEach var="row" items="${rs.rows}"> Amount: ${row.amount} </c:forEach>
2。静的メソッドを EL 関数として宣言
functions.tld ファイルを作成して、静的メソッドを EL 関数として定義します。例:
<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>
JSP ページで、EL 関数を使用します:
<%@taglib uri="http://example.com/functions" prefix="f" %> ... Amount: ${f:calculateAmount(row.balance)}
以上がJSP/ELで静的メソッドを呼び出すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。