
HTMLの<frame>タグでaaa.jspとbbb.jspを同時に表示させています。
aaa.jspからのフォームの値をHOGEというServletで受取り、
処理したものをaaa.jsp・bbb.jsp共に反映(更新)させるにはどうすれば良いでしょうか?
現状、forwardを2回書いているのですが、下記の様に怒られてしまいます。
(エラー/java.lang.IllegalStateException: レスポンスをコミットした後でフォワードできません
)
============aaa.jspのフォーム===================================
<form name="a1" method="post" action="/HOGE">
<input type="submit" name="GO" value="go">
</form>
================================================================
============HOGE (サーブレット)================================
public class HOGE extends HttpServlet {
public void doPost (HttpServletRequest request, HttpServletResponse response){
//jspに渡すパラメータをセット
request.setAttribute("pram1", "judy");
request.setAttribute("pram2", "mary");
//forward準備
ServletContext sc = getServletContext();
RequestDispatcher aaa = sc.getRequestDispatcher("/jsp/aaa.jsp");
ServletContext sa = getServletContext();
RequestDispatcher bbb = sa.getRequestDispatcher("/jsp/bbb.jsp");
try {
aaa.forward(request, response);
bbb.forward(request, response); //ここでエラー
} catch (ServletException e) {
} catch (IOException e) {
}
}
}
==============================================================
どなたかご存知の方いらっしゃいましたら御教授宜しくお願いします。
No.2ベストアンサー
- 回答日時:
簡単ですよー。
そういうときはフレームセットをjspにしてそちらにforwardします。
フレームセットでパラメタを受け取ったら、それをそれぞれのページに渡します。
例:
<frameset>
<frame src="sideBar.jsp?<%=パラメタ1%>" name="leftFrame" >
<frame src="mainPage.jsp?<%パラメタ2%>" name="mainFrame">
</frameset>
No.3
- 回答日時:
補足です。
targetの指定に気をつけてくださいね。そうしないとフレームが入れ子になってしまいますので。
サーブレットを呼び出すリンクに、target="_top"を指定してください。
postの場合はこれを回避するのはちょっと面倒くさいです。というか、私は実際にやった経験はありません。すみません。
No.1
- 回答日時:
フレーム分けしているとなると、aaa.jspのフォームを送信しても、bbb.jspは更新されないと思います。
同時に複数のページを表示するのがフレームですから。そもそも「片方を操作してももう片方には何も影響がない」のがフレームの利点ですから。どうして、こうした用途でフレームを使う必要があるのでしょうか。特に必要性がないのであれば、せっかくJSPを使っているのですから、2つのページをインクルードして1ページとして表示させるのが一般的だと思うのですが。それならば変数を埋め込むなりしていくらでも表示に手を入れられますし。フレームを使ったやり方を考え直すのが、最終的には一番よいように思います。
もし、どうしてもフレームを使わなければならない理由があるようでしたら、それについて補足していただけますか。
この回答への補足
violiniさん、ご回答ありがとうございます。
フレームを使う理由なのですが、
現在《ツリービュー、表示ビュー、プロパティビュー》という3フレーム構成で画面を作っており、例えばツリービューのファイルをクリックしたら表示ビューへファイルの中身を表示させ、プロパティビューにはファイルの属性情報を表示させるような作りを想定しています。
尚且つ、eclipseの画面のように表示ビューをもっと大きくしたい場合にマウスで掴んでビューを広げられるような動きが求められます。
以上の理由でフレームを使っているのですが、今回の値の連携で困ってしまいました。
ちなみにJavaScriptを使ってなら実現出来たのですが、後々デバッグが辛すぎるので、出来るならJava側で制御したいと思っています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- Excel(エクセル) ¥マークを含むパスの処理について(マクロ、または関数) 2 2022/12/25 02:11
- Windows 10 バッチファイルの記述法とルールについてアドバイスをお願いいたします。 1 2022/04/13 10:50
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
- Perl perl このテキストファイルを簡単に配列に入れるには? 2 2022/04/27 20:24
- Java 問題作成のWebアプリの作り方を教えてください 1 2022/11/26 22:01
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- バックアップ ファイル履歴を使用してバックアップよりハードディスクドライブに保存した方良いですか? 3 2022/09/29 22:31
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JSPの値により遷移先を変更する
-
jspファイルの保存方法について。
-
WEB-INF直下のフォルダ
-
JSPが表示できない
-
JSPのページでの質問
-
strutsでフレームの分割ができ...
-
WebLogic6.0 でのJSPプリコンパ...
-
Tomcatで、存在するファイルがS...
-
jspからServletを呼び、元のjsp...
-
[JSP]1Servletから複数フレーム...
-
jspでbeanを使いたいのです...
-
1つのフォーム内容を1つのsubmi...
-
インターネット エクスプローラ...
-
ジオのHP(HPビルダーでiモー...
-
JSPで<A HREF=
-
腕時計の時報をならないように...
-
画面によって文字の表示がおか...
-
JavaScriptのsubmit()がされない
-
struts2 iteratorタグ内でActio...
-
WebBrowserに表示されているペ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
jspからServletを呼び、元のjsp...
-
webアプリを作ってます。エラー...
-
JSPからJSPへ情報を渡せる?
-
javascriptでformの送信後、値...
-
Struts:フレーム内JSPからcssフ...
-
検索後のページ再表示初期化
-
JSPの変数受け渡しについて教え...
-
jspでbeanを使いたいのです...
-
1つのフォーム内容を1つのsubmi...
-
servletからjspへの遷移時に文...
-
TOMCATで\\webapps\\ROOTフォル...
-
TomcatとJSPの階層関係
-
Tomcatで開発したStrutsアプリ...
-
Servletで値を受け取る
-
文字列を抽出したい
-
JSPとは凄いのか?SEO的には?
-
jspからjarを参照したいのですが
-
WebLogic6.0 でのJSPプリコンパ...
-
JSPでimportを行う時の、変数の...
-
jspから別のjspへパラメータ...
おすすめ情報