JSPのアクションの使い方と実行例
forwardアクションは、現在のページの処理を終了し、そのリクエストを静的ページ・別のJSPページ・Javaサーブレットなどの別のリソースへ転送(フォワード)するための標準アクションです。ブラウザには転送先のリソースの出力だけが返されるため、画面遷移やMVCモデルにおけるコントローラからビューへの振り分けなどによく使われます。
forwardアクションの基本構文
forwardアクションの構文は以下のとおりです。
<jsp:forward page = "相対URL" />
forwardアクションで指定できる必須属性は次の表のとおりです。
| 番号 | 属性と説明 |
|---|---|
| 1 | page 転送先となるリソース(静的ページ・別の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はできるだけページの早い段階で呼び出すのが安全です。
-
JSPでタイムゾーンを使用する方法|JSTL fmt:timeZoneタグの使い方を解説
JSTL(JSP Standard Tag Library)の<fmt:timeZone>タグは、そのタグ本体(ボディ)内に記述されたすべてのタグに対して、適用するタイムゾーンを指定するために使用します。国際化対応のWebアプリケーションでは、ユーザーの地域ごとに日付や時刻を表示し分ける必要があるため、このタグが非常に役立ちます。 属性 <fmt:timeZone>タグには、以下の属性があります。 属性説明必須デフォルト値valueタグ本体内に適用するタイムゾーンはいなし 使用例 次のサンプルコードでは、java.util.TimeZone.getAvailableID
-
JSPでパラメータ化されたSQLクエリを使う方法|sql:paramタグの基本と実践例
<sql:param> タグは、<sql:query> タグや <sql:update> タグの入れ子(ネスト)アクションとして使用され、SQL文内の値プレースホルダー(?)に実際の値を渡すためのものです。null値が指定された場合は、プレースホルダーに SQL NULL が設定されます。 属性一覧 <sql:param> タグには、以下の属性が用意されています。 属性説明必須デフォルト値 value設定するパラメータの値いいえタグのボディ(本文) 実行例 基本的な概念を理解するために、まず TEST データベース内に Employe