プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

JSPのアクションの使い方と実行例

forwardアクションは、現在のページの処理を終了し、そのリクエストを静的ページ・別のJSPページ・Javaサーブレットなどの別のリソースへ転送(フォワード)するための標準アクションです。ブラウザには転送先のリソースの出力だけが返されるため、画面遷移やMVCモデルにおけるコントローラからビューへの振り分けなどによく使われます。

forwardアクションの基本構文

forwardアクションの構文は以下のとおりです。

<jsp:forward page = "相対URL" />

forwardアクションで指定できる必須属性は次の表のとおりです。

番号属性と説明
1page
転送先となるリソース(静的ページ・別のJSPページ・Javaサーブレットなど)の相対URLを指定します。リクエストパラメータを渡したい場合は、このタグの子要素として <jsp:param> を組み合わせることもできます。

使用例

ここでは、(a) date.jsp(b) main.jsp の2つのファイルを使って、forwardアクションの動作を確認してみましょう。

date.jsp ファイルの内容は以下のとおりです。

<p>今日の日付: <%= (new java.util.Date()).toLocaleString()%></p>

main.jsp ファイルの内容は以下のとおりです。

<html>
    <head>
        <title>forwardアクションの例</title>
    </head>
    <body>
        <center>
            <h2>forwardアクションの例</h2>
            <jsp:forward page = "date.jsp" />
        </center>
   </body>
</html>

これらのファイルをアプリケーションのルートディレクトリに配置し、ブラウザからmain.jspにアクセスすると、以下のような結果が表示されます。

今日の日付: 2010年9月12日 14:54:22

ご覧のとおり、main.jsp側に出力していた見出しなどの内容は破棄され、転送先であるdate.jspの出力だけが表示されています。これがforwardアクションの特徴です。

includeアクションとの違い

似たアクションに<jsp:include>がありますが、両者には明確な違いがあります。

  • includeアクション: 転送先の出力を現在のページに取り込み、両方の内容がまとめて出力されます。
  • forwardアクション: 現在のページの処理を打ち切り、転送先の出力だけがクライアントに返されます。

なお、forwardを実行する前にすでにレスポンスバッファへ出力があり、かつバッファがフラッシュ済みの場合はIllegalStateExceptionが発生することがあるため、forwardはできるだけページの早い段階で呼び出すのが安全です。

  1. JSPでタイムゾーンを使用する方法|JSTL fmt:timeZoneタグの使い方を解説

    JSTL(JSP Standard Tag Library)の<fmt:timeZone>タグは、そのタグ本体(ボディ)内に記述されたすべてのタグに対して、適用するタイムゾーンを指定するために使用します。国際化対応のWebアプリケーションでは、ユーザーの地域ごとに日付や時刻を表示し分ける必要があるため、このタグが非常に役立ちます。 属性 <fmt:timeZone>タグには、以下の属性があります。 属性説明必須デフォルト値valueタグ本体内に適用するタイムゾーンはいなし 使用例 次のサンプルコードでは、java.util.TimeZone.getAvailableID

  2. JSPでパラメータ化されたSQLクエリを使う方法|sql:paramタグの基本と実践例

    <sql:param> タグは、<sql:query> タグや <sql:update> タグの入れ子(ネスト)アクションとして使用され、SQL文内の値プレースホルダー(?)に実際の値を渡すためのものです。null値が指定された場合は、プレースホルダーに SQL NULL が設定されます。 属性一覧 <sql:param> タグには、以下の属性が用意されています。 属性説明必須デフォルト値 value設定するパラメータの値いいえタグのボディ(本文) 実行例 基本的な概念を理解するために、まず TEST データベース内に Employe