JavaでStrutsを使用してJSP画面のインクルードを行う場合について
改修を行いたい画面では現在、他の画面をインクルードディレクティブを使用して呼んでいます。
今回、呼んでいる先の表示項目が固定でなく、条件により変更されるように変更したいと思っています。
しかし、インクルードディレクティブを使用すると、呼んでいる先の画面の表示項目に変数を使用できないときいたため、以下の修正を行い、変更後の画面を見たところ、呼んでいる先の画面が表示されていませんでした。
・インクルードアクションを使用して呼ぶように変更
(AAA.jspは呼んでいる先のJSP名))
変更前
(<%@ include file="AAA.jsp"%>
変更後
<jsp:include page="AAA.jsp" flush="true">
<jsp:param name="count" value="<%= count1 %>" />
<jsp:param name="count" value="<%= count2 %>" />
</jsp:include>
※count1,count2は、JSP内で定義している変数が設定されています。
と、変数を2つ使用しています。
、画面にエラーメッセージは表示されないため、原因について、記述内容を考えたのですが、改修を行った画面と呼んでいる先の画面は、同一フォルダ内にあるため、問題ないと考えています。
インクルードディレクティブからインクルードアクションに変更したのみで、ページのインクルードができなくなることってあるのでしょうか?
それとも、インクルードディレクティブとインクルードアクションの違いは
<%@ include file="AAA.jsp"%>
と
<jsp:include page="AAA.jsp" flush="true" />
だけではなく、別のところでも設定変更が必要なのでしょうか?
素人な質問で申し訳ありませんが、
・インクルードディレクティブからインクルードアクションに変更するときに画面が表示されなくなった理由
・インクルードディレクティブを使用して、呼んでいる先の画面から変数を取得する方法
のどちらかがわかる方いらっしゃいましたら教えてください。
ちなみに、
<jsp:include file="AAA.jsp" flush="true" />
だったとか、そういうミスはしていません。
No.1ベストアンサー
- 回答日時:
参考になるかどうかわかりませんが、調べたところを報告します。
・ 今回strutsは使っていません。
>>> ・インクルードディレクティブからインクルードアクションに変更するときに画面が表示されなくなった理由
これは、strutsの処理の仕方に原因があるかもしれません。
>>> ・インクルードディレクティブを使用して、呼んでいる先の画面から変数を取得する方法
これの対処法は、リクエスト属性を使う方法ではダメなのでしょうか。つまり
<%
request.setAttribute("db", "DBA1");
%>
で渡して
<%=request.getAttribute("db") %>
で受け取る。
----------------------------------------------------------
インクルードディレクティブ側とインクルードファイルの双方向
インクルードアクション側とインクルードファイルの双方向
----------------------------------------------------------
いずれもうまく行くようだと私なりに確認しました。
(つまりオブジェクトは、普通に交換できる。)
これは、
>>> インクルードディレクティブを使用すると、呼んでいる先の画面の表示項目に変数を使用できない
の対処にも利用できるのではないでしょうか。
・ 後ひとつ追加することがあります。(これもどこかで間違っているかもしれませんが。)
それは、
「インクルードディレクティブの場合まさにソースコードを挿入した後に変換・コンパイルを行う。つまり、インクルードファイルのコードも同じメソッドで実行される。」
ということです。
この事により、
「インクルードファイルで宣言・代入した変数を、インクルードディレクティブでは宣言なしで使える。」
ということになります。
これは、まさに2番目の問いにぴったりです。
例として
----------------------------------------------------------
インクルードファイルに
<%int inc=100; %>
インクルードディレクティブ側に宣言をせずに
<%=inc%>
をコーディングします。
----------------------------------------------------------
もちろん単独では、インクルードディレクティブ側は、エラーとなります。
ところがインクルードファイルに変数incが存在すれば微妙なタイミングで、OKのようです。
以上、役に立つかどうかわかりませんが、試してみていただければ幸いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
- Windows 10 WIN10(MAC-bootcamp)で 起動時のパスWが どうにもならない 2 2023/06/30 11:40
- Windows 10 ビデオカードが変更されたPCの復元 1 2022/11/29 02:01
- メルカリ メルペイをコンビニでバーコード表示できなかった・・・? 1 2023/07/04 16:52
- モニター・ディスプレイ Displayport接続時にディスプレイ設定の一部の項目がチラついて変更できない 3 2022/07/31 10:06
- 待ち受け・壁紙 ロック画面に表示される時刻のサイズ変更 AQUOS SENSE 4 (ドコモ)を使用中です。スマホの 2 2022/08/08 10:39
- Java 問題作成のWebアプリの作り方を教えてください 1 2022/11/26 22:01
- PHP php 確認表示画面で値をSESSIONから取り出す理由の解釈は正しいでしょうか? 1 2023/06/09 17:39
- 格安スマホ・SIMフリースマホ 通話中に「話し中音」にする方法を教えてください 2 2023/03/26 23:05
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
三菱GOTの画面切り替えについて
-
C言語で今まで表示していた画面...
-
Strutsで画面遷移させない。
-
FormのsubmitでFormの内容がnull
-
C# ログイン画面からメイン画面...
-
プログラミングで例えばゲーム...
-
SessionとViewStateについて
-
ホームページビルダーが遅い!...
-
サブミット後、自動的に画面を...
-
ASP.NET 画面遷移前の状態を保...
-
system("cls")について
-
"+"文字が" (スペース)"に文字...
-
Javascriptのhistory.back()が...
-
GUIとは何でしょうか?(定義)
-
URLはそのままで、リンクをクリ...
-
Java-jspの画面入力値保持について
-
画面を隠す・消す方法を教えて...
-
strutsで、JSP→アクションクラ...
-
ブラウザ表示しない設定のPDFの...
-
遷移元を判定したい!
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
三菱GOTの画面切り替えについて
-
画面遷移を行わずに同一ページ...
-
プログラミングで例えばゲーム...
-
フロントエンドフレームワーク...
-
Java-jspの画面入力値保持について
-
遷移元を判定したい!
-
ASP.NET 画面遷移前の状態を保...
-
Googleキーワードについて キー...
-
Javaプログラミングの質問にな...
-
C言語で今まで表示していた画面...
-
ボタンを押したあとに画像を表...
-
セッション切れでのリクエスト...
-
C# ログイン画面からメイン画面...
-
JavaScriptでページが更新され...
-
ServletからServletへの値渡し
-
ZOOMでオンラインミーティング
-
登録後、呼び出し元ページに戻...
-
サブミット後、自動的に画面を...
-
アドレスバーに引数を表示させ...
-
Beautiful Soupのインストール...
おすすめ情報