2016-11-17 18 views
0

JSPタグ、2ページがどのように異なるでしょう、あなたは適切に移入学生のオブジェクトを持っていた場合ページにアクセスする前のセッションと、生徒オブジェクトがヌルのときに別のセッションがあります。JSPタグ

誰かが私にこれをより明確に説明できますか?

答えて

1

JSPタグ:

official Sun documentation

は言う:

<jsp:useBean>要素が位置やJavaBeans コンポーネントをインスタンス化します。

まず、 beanのインスタンスの検索を試みます。 Beanが存在しない場合、<jsp:useBean>は、 からクラスまたはシリアライズされたテンプレートをインスタンス化します。 Beanを検索またはインスタンス化する

<jsp:useBean>はこの順序で、次 の手順を実行します。指定したスコープと名前のBeanを検索するため

  1. 試みを。
  2. 指定した名前のオブジェクト参照変数を定義します。
  3. Beanが見つかった場合は、変数への参照を格納します。型を指定した場合は、その型のBeanを与えます。
  4. Beanが見つからない場合は、指定したクラスからBeanをインスタンス化し、その変数への参照を新しい変数に格納します。クラス の名前がシリアル化されたテンプレートを表す場合、そのBeanは java.beans.Beans.instantiateによってインスタンス化されます。
  5. ifは、Beanをインスタンス化しています(配置されているというよりも)、bodyタグまたは要素が( の間に)ある場合、bodyタグを実行します。

タグがpagerequestsessionapplicationのために、すべてのスコープでスキャンします:

<jsp:useBean id="beanInstanceName" scope="page|request|session|application" ... > 

をEL:

それだけで(作成したことがない)の属性を見つけます私たちが豆のために持っているのと同じスコープ(そして同じ栄養指数)で。それらにアクセスするには、必ずthe right EL keywordsを使用してください。バックあなたの質問に取得


あなたがスコープで設定studentオブジェクトを持っている場合は、両方の戦略のために、両方が適切にそれを得るだけでなく、その属性を処理します。

それ以外の場合は、オブジェクトがnullでそのプロパティにアクセスしようとしていないことを知ると、ELは単純に何も印刷しませんが、useBeanタグは新しいオブジェクトを作成して指定されたスコープに格納します。

関連する問題