0

行動を説明してもらえますか?サーブレットでリクエスト属性を設定し、JSPで読み取っています。

1)ディスパッチャサーブレットコード:

request.setAttribute("someName", someObject);

当然、JSPでは次のように読むことができます${someName}

2)しかし、属性名をELの暗黙的なオブジェクト名と同じに設定すると、次のようになります。

request.setAttribute("requestScope", someObject);

${requestScope.requestScope}それから私はそれを!として読まなければなりません。

コンテナがcase#1の属性を直接マップできるのに、属性名自体がELの暗黙的なオブジェクト名である場合は、次のように参照をネストする必要があるのは${requestScope.requestScope}なぜですか?

4

1 に答える 1

1

ELは、最初に、指定された変数名が予約済み(暗黙)変数名の1つであるかどうかを確認してから、仕様に従ってそれを使用します。そうでない場合は、のように${someName}、ELは、ページ、リクエスト、セッション、およびアプリケーションのスコープで、それぞれ正確にその名前の属性を自動的に検索します。

これは逆に機能することを期待しているようです。つまり、最初に属性、次に暗黙のオブジェクトです。本当じゃない。そうしないと、暗黙のELオブジェクトの動作が完全に中断されます。

于 2013-02-13T17:54:01.993 に答える