私はJava Webアプリケーションを書くときに、私は通常JSTLタグを使います。私は、これらのタグは、私を怒らせるものを除いて、素晴らしいものだと思います。表現言語ではBeanのプロパティにアクセスできますが、そのメソッドを呼び出すことはできません。ELのメソッド呼び出し
リリース1.0では、文字列の長さやコレクション内の要素数を取得することさえできませんでした。リリース1.1の時点で、FN:あなたは物事を行うことができますので、長さ機能は、このような追加されました:
よりも(つまり私見)より冗長多くの醜いです...
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
...
<c:if test="${fn:length(str) > 10}">
...
</c:if>
...
:
...
<c:if test="${str.length() > 10}">
...
</c:if>
...
JSTL 2.0では新しい関数を定義することができますが、(静的な)メソッドを定義するための特別なクラスを作成する必要があります。また、そのメソッドを定義するTLDファイルも作成する必要があります。これらの機能を使用するすべてのJSPに組み込むことができます。
カスタム関数を定義する場合でも、別の回避策を使用する場合でも、追加のコードを書く必要があります。
私は、JCPが表現言語からメソッドを呼び出すことを自発的に許可していなかったと読んでいます。
誰かが私たちにこれをやっているJCPの理由を理解するのを助けることができますか?
これはいつも私の麺を完全に焼いたものです。なぜこれがELで許されないのか理解できない –