ホームページ  >  記事  >  Java  >  JSP/ELで静的メソッドを呼び出すにはどうすればよいですか?

JSP/ELで静的メソッドを呼び出すにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-16 04:23:02111ブラウズ

How to Invoke Static Methods in JSP/EL?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。