6

主にオンラインの例では前者の方法をほとんど使用していないように見えるため、immediate evaluationJSF との使用についてはまだ不明です。deferred evaluation

http://docs.oracle.com/javaee/6/tutorial/doc/に含まれているものを含め、かなりの量のJSFの例を見てきましたが、ほとんどの例しか見たことがないという事実に少し戸惑っています#{}代わりに${}、Bean プロパティを読み取るだけの場合でも。

これら 2 つの用途についての私の理解では、${}Bean プロパティの読み取りにのみ使用でき、書き込みには使用できません。immediateJSFライフサイクルに関するvsdeferred評価の正確な違いと、Beanプロパティの読み取りにどのような違いがあるかについての明確な説明をまだ見つけていません。

誰もが#{}Bean プロパティの読み取りに常に を使用している場合、いつ を使用することをお勧めします${}か?

つまり、要約すると:

  • Bean のプロパティ#{}読み取る${}ときに、誰もが好むように見えるのはなぜですか?
  • ${}の代わりにいつ使用することをお勧めし#{}ますか?
  • ${}usingと using の結果が異なる例を教えてください#{}(結果が異なる理由を説明できますか)。
4

1 に答える 1

9

Faceletsでは、${}はとして扱われる#{}ため、技術的には違いはなく、常に延期されます。

JSP 2.0以前では、${}まだスコープ内にない場合、はマネージドBeanを自動作成しません。したがって、コンポーネントツリーの以前#{}のどこかでまったく同じマネージドBeanが使用されていることを保証でき、ビューのビルド時間とビューのレンダリング時間のライフサイクルを考慮に入れることができる場合にのみ使用できます。すべてのJSPバージョンで、モデルにJSF入力コンポーネントの送信された値を設定することはできません。全体として、それらを混合することは、初心者にとって、そして長期的には自分自身にとっても混乱を招く可能性があるため、お勧めできません。${}

参照:

于 2013-03-20T14:41:00.527 に答える