人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Javaサーブレットで、webを作成中です。jspで、表示前に条件が合わなかった場合、他のjspを表示する方法はどうするのでしょうか?
例えばa.jspをユーザーが指定した時、表示前に、なんとかスコープとかいう方法で、値Xが得られなかった場合b.jspを表示し、b.jspで、リストボックスでXの値を選んで、実行ボタンを押すと、a.jspが開かれ、a.jspは、Xの値を使ったデータで、リストボックスを表示させる、というようなことを行いたいのですが。参考になる点を教えてください。、


●質問者: kojiro_i619
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● a-kuma3
●300ポイント ベストアンサー

Servlet なら、RequestDispatcher の forward メソッドを使います。

 if (条件が合わない) {
 RequestDispatcher dispatcher = request.getRequestDispatcher("/b.jsp");
 dispatcher.forward(request, response);
 }

JSP でも、RequestDispatcher が使えますけど、forward ディレクティブというのもあります。

 <% if (条件が合わない) { %>
 <jsp:forward page="/b.jsp" />
 <% } %>

kojiro_i619さんのコメント
下の構文を、試しています。 WEB-INFの下のフォルダAの中のA_list.jspに書き込んで、 WEB-INFの下のフォルダBの中のmenu_LIst.jspを呼び出したいのですが、 "/b.jsp"の部分を、どう記述するのでしょうか?

kojiro_i619さんのコメント
/menu/menu_List.jspでは、404のnot avairableです。・・・/menuでブラウザで見ますと、出ます。このjspはmenu.javaでサーブレットを行っています。

a-kuma3さんのコメント
forward は同じアプリケーションの中でしか飛ばせなくて、URL に指定するのはコンテキストルートから下になります。 別のアプリケーションのページに飛ばしたいのであれば、リダイレクトを使うと良いでしょう。 >|jsp| <% if (条件が合わない) { response.sendRedirect("http://(hostname)/menu/menu_List.jsp"); } %> ||<

kojiro_i619さんのコメント
response.sendRedirect("http://localhost:8080/XXXXX/menu"); でうまくいきました。ありがとうございました。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ