ダウンロード サンプルファイル (3.3 MB)
Struts 2入門 第5回の本稿は、MVCモデルで言うところの「V」iewレイヤーについて説明します。Viewレイヤーとは、アプリケーションの処理結果を表示するレイヤーにあたります。
はじめに
「Apache Struts」(以下、Struts)とは、サーバサイドJava開発のデファクトスタンダードとしてあまりにも有名な、オープンソースのWebアプリケーション・フレームワークです。本連載では、そのStrutsの次世代バージョンであるStruts 2を、実際に動作するアプリケーションと共に解説していきます。
第5回目の本稿は、MVCモデルで言うところの「V」iewレイヤーについて説明することにします。Viewレイヤーとは、アプリケーションの処理結果を表示するレイヤーにあたります。
対象読者
サーバサイドJava(JSP&サーブレット)について基本的なことは理解している方を対象とします。
Result処理
Struts 2のViewは、URIリクエストから実行されたActionクラスの処理結果や状態を出力するレイヤーです。デフォルトでは、JSPファイルをテンプレートとして、HTMLが生成されます。またHTMLだけでなく、プレーンなテキストであったり、画像データなどのバイナリデータを指定することもできます。
今までの連載記事のなかでも、Actionの処理結果に応じた出力の指定について、たびたび言及していましたが、ここで整理してみることにします。

Result Type
ちょっとこれまでのサンプルコードをふりかえってみましょう。URIリクエストから実行されるActionクラスのメソッドでは、処理結果を"success"などの文字列で返すようにしていました。この結果の文字列を受けて、どのような処理をさせるかは、struts.xml の<result>タグで設定しています。例えば次のように指定すると、結果が"success"のときにindex.jspを用いた出力となります。
<result name="success">/index.jsp</result>
実はこれは既定値を利用した書き方で、タグを省略しないで書くと、次のようになります。
<result name="success" type="dispatcher">
<param name="location">/index.jsp</param>
</result>
type属性で処理のタイプを指定し、<param>タグでその処理のパラメータを指定します。このtype属性で指定している"dispatcher"の実体は、struts-default.xmlにて設定されているorg.apache.struts2.dispatcher.ServletDispatcherResultクラスです。JSPファイルを解釈して、 HTMLを生成する処理を行います。
<result>タグのtype属性(Result Type)を変更することで、処理を切り替えることができます。Struts 2で用意されているResult Typeは次の表の通りです。これは、本連載の第3回目でも少しふれていますが、さらに詳しく見ていくことにしましょう。
| Result Type | 概要 | 種別 |
| chain | 別のActionクラスを呼び出す | 遷移 |
| redirect | 指定したURLにリダイレクトする | |
| redirectAction | 指定したActionにリダイレクトする | |
| dispatcher | JSPファイルをテンプレートとしてHTML を生成する(デフォルト) | データ生成 |
| freemarker | 汎用テンプレートエンジンのFreeMarkerを使用してHTMLを生成する | |
| velocity | 汎用テンプレートエンジンのVelocityを使用してHTMLを生成する | |
| xslt | XSLTを使用してHTML(XML)を生成する | |
| httpheader | HTTPのステータスヘッダだけを生成する | |
| stream | バイナリデータをそのままクライアントに返す。ファイルのダウンロード等に利用する | |
| plainText | プレーンテキストとして、そのままクライアントに返す | |
| tiles | Tilesフレームワークを利用してHTMLを生成する | |
| jasper | オープンソースの帳票ライブラリJasperReport利用したレスポンスを生成する |
この記事は参考になりましたか?
- 作りながら学ぶJavaアプリケーションフレームワーク連載記事一覧
- この記事の著者
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
WINGSプロジェクト 高江 賢(タカエ ケン)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
