2

Java統合式言語には、EL構文の2つの基本タイプがあります。

${expression for immediate evaluation}
#{expression for deferred evaluation}

JaveServer Facesでのこれら2つの違いを理解しています。JSFにはさまざまなライフサイクルの感覚があり、即時式は常にページレンダリングで評価されますが、遅延式はページレンダリング、ポストバック、またはその両方で評価できます。

ただし、JavaServerPagesの違いは私にはわかりません。私の知る限り、JSPにはJSFのようなライフサイクルの感覚がありません。実際、延期された構文がJSPでも合法であることを知って、私は少し驚いた。ただし、デプロイメント記述子で下位互換性<jsp-config>設定を使用して、他の目的でその構文を使用するJUEL以前のJSPの遅延構文の検出を無効にすることができるためです。

<deferred-syntax-allowed-as-literal>

だから、問題は、違いは何ですか?遅延構文は、JSPでJSFで意味するのとまったく同じことを意味することはできませんが、JSPで遅延構文を使用する方法を説明するドキュメントはどこにも見つかりません。

それらはJSPでは単に同義ですか?

4

1 に答える 1

2

他のフォーラムからこれを見つけました。役に立てば幸いです。

JSP2.1 仕様の序文セクションを確認してください。Deferred 式は、属性が defered であることを指定したカスタム タグにのみ実際に適用されます。ほとんどの場合、私はそれらを気にしません。

基本的に、テンプレート テキストで #{deferredSyntax} を使用すると、翻訳エラーが発生します (タグ属性の外では意味がありません)。

タグ属性で #{deferredSyntax} を使用する場合、taglib がサポートする JSP のバージョンの tld 宣言に依存します。- サポートされる JSP バージョン < 2.1 == リテラルとして扱う - サポートされる JSP バージョン >= 2.1 : 据え置き属性として扱う - そのようにマークされている限り。

ページ属性を設定できます。

<%@page deferredSyntaxAllowedAsLiteral="true"%> 
于 2013-02-11T03:41:36.770 に答える