forward+paramアクション

広告

「param」アクションを「forward」アクションと同時に用いることで、フォワードされる時にフォワード先に渡すリクエストに新しいパラメータを追加して渡すことができます。

「param」アクションの書式は次の通りです。

<jsp:param name="パラメータ名" value="値" />

「param」アクションは属性値として「name」にパラメータ名と、「value」に格納する値を指定します。「forward」アクションと組み合わせて利用する場合には「forward」アクションの子要素として定義します。パラメータは必要な数だけ記述して下さい。

<jsp:forward page="転送先のページ">
    <jsp:param name="パラメータ名" value="値" />
    <jsp:param name="パラメータ名" value="値" />
</jsp:forward>

フォワード先のJSPページ又はサーブレットでは、渡されてきたパラメータを「getParameter」又は「getParameterValues」を使って値を取り出すことができます。(「getParameter」については『リクエストパラメータの取得(getParameter)』を参照して下さい)。

String val = request.getParameter("paramName");

※requestは暗黙オブジェクトの1つで、クライアントからのリクエストに関するパラメータやクッキーなどの情報が含まれます。

サンプルプログラムの実行

それでは実際に試してみましょう。コンテキストファイルは次のようにします。

<Context path="/action"
docBase="d:/jsp-sample/action"/>

JSPページは次のようになります。

forwardFrom2.jsp

<%@ page contentType="text/html;charset=Shift_JIS" %>

<jsp:forward page="forwardTo.jsp">
  <jsp:param name="from" value="forwardFrom2.jsp" />
</jsp:forward>

<html>
<head><title>forwardテスト</title></head>
<body>
<h1>forwardテスト</h1>
</body>
</html>

forwardTo2.jsp

<%@ page contentType="text/html;charset=Shift_JIS" %>

<html>
<head><title>転送先ページ</title></head>
<body>
<h1>転送先ページ</h1>
<p>
転送元のページは
<%
String source = request.getParameter("from");
out.print(source);
%>
です。
</p>
</body>
</html>

JSPページはコンテキストファイルで指定したドキュメントルートの直下に置いておきます。

[D] -- jsp-sample
        |
        +-- action
        |    |
             +-- (forwardFrom2.jsp)
             |
             +-- (forwardTo2.jsp)
             |

それでは「http://localhost/action/forwardFrom2.jsp」にブラウザからアクセスします。次のように表示されれば成功です。

paramアクション

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。