- ベストアンサー
JavaでStrutsを使用してJSP画面のインクルードを行う場合について
- JavaでStrutsを使用してJSP画面のインクルードを行う際の注意点や修正方法について解説します。
- インクルードディレクティブからインクルードアクションへの変更により、画面が表示されなくなる場合がある可能性があります。また、インクルードディレクティブを使用して呼んでいる先の画面から変数を取得する方法も紹介します。
- インクルードディレクティブとインクルードアクションの違いについては、設定変更が必要な場合があります。それぞれの使い方と注意点について説明します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
参考になるかどうかわかりませんが、調べたところを報告します。 ・ 今回strutsは使っていません。 >>> ・インクルードディレクティブからインクルードアクションに変更するときに画面が表示されなくなった理由 これは、strutsの処理の仕方に原因があるかもしれません。 >>> ・インクルードディレクティブを使用して、呼んでいる先の画面から変数を取得する方法 これの対処法は、リクエスト属性を使う方法ではダメなのでしょうか。つまり <% request.setAttribute("db", "DBA1"); %> で渡して <%=request.getAttribute("db") %> で受け取る。 ---------------------------------------------------------- インクルードディレクティブ側とインクルードファイルの双方向 インクルードアクション側とインクルードファイルの双方向 ---------------------------------------------------------- いずれもうまく行くようだと私なりに確認しました。 (つまりオブジェクトは、普通に交換できる。) これは、 >>> インクルードディレクティブを使用すると、呼んでいる先の画面の表示項目に変数を使用できない の対処にも利用できるのではないでしょうか。 ・ 後ひとつ追加することがあります。(これもどこかで間違っているかもしれませんが。) それは、 「インクルードディレクティブの場合まさにソースコードを挿入した後に変換・コンパイルを行う。つまり、インクルードファイルのコードも同じメソッドで実行される。」 ということです。 この事により、 「インクルードファイルで宣言・代入した変数を、インクルードディレクティブでは宣言なしで使える。」 ということになります。 これは、まさに2番目の問いにぴったりです。 例として ---------------------------------------------------------- インクルードファイルに <%int inc=100; %> インクルードディレクティブ側に宣言をせずに <%=inc%> をコーディングします。 ---------------------------------------------------------- もちろん単独では、インクルードディレクティブ側は、エラーとなります。 ところがインクルードファイルに変数incが存在すれば微妙なタイミングで、OKのようです。 以上、役に立つかどうかわかりませんが、試してみていただければ幸いです。
お礼
お返事遅れてすいません。 ご指摘の内容でやったところうまくいけました。 問題解決です。 どうもありがとうございました。