Struts 2入門(8)~Struts2で構築するToDoアプリケーション~
作りながら学ぶJavaアプリケーションフレームワーク (8)
ダウンロード サンプルファイル (4.9 MB)
本連載では、オープンソースのサーバサイドJava向けWebアプリケーション・フレームワーク「Struts 2」を、実際に動作するアプリケーションと共に解説していきます。第8回目の本稿は、連載のひと区切りということで、ある程度まとまった機能をもつサンプルを紹介することにします。
はじめに
「Apache Struts」(以下、Struts)とは、サーバサイドJava開発のデファクトスタンダードとしてあまりにも有名な、オープンソースのWebアプリケーションフレームワークです。本連載では、そのStrutsの次世代バージョンであるStruts 2を、実際に動作するアプリケーションと共に解説していきます。
第8回目の本稿は、連載のひと区切りということで、ある程度まとまった機能をもつサンプルを紹介することにします。今回もStruts 2のバージョンは2.1.6、「Zero Configuration」の形式です。また前回同様、データベースはMySQL、データベースのO/Rマッピングフレームワークには、ActiveObjectsを使用しています。
対象読者
サーバサイドJava(JSP&サーブレット)について基本的なことは理解している方を対象とします。
ToDoアプリケーション
前回のアプリケーションを発展させて、シンプルなToDoアプリケーションを作ってみることにします。「ToDo」とは、やるべき事柄をメモしたもので、ごくかんたんな予定表や備忘録とも言えるでしょう。
メイン画面は、次のようになります。見たとおりGUIは、最低限のものです。

画面遷移
画面構成はシンプルで、「ToDo」の表示、登録、削除を行うメインの画面、ログイン画面、ユーザー登録画面となります。
各機能を使用するには、ユーザー単位でログインが必要です。ログインが済んでいない状態でメイン画面を呼び出すと、まずログイン画面が呼び出されるようになっています。

ただし最初はユーザーが登録されていませんので、まずは、新規ユーザーの文字をクリックして、ユーザーの登録を行います。


その後ログインをクリックすると、すぐにメイン画面になります。

ToDoメッセージの追加は、次のようにテキストボックスに入力して、「Add TODO」ボタンをクリックします。

ToDoメッセージを削除するには、チェックボックスにチェックを入れて、「Finish」ボタンをクリックします。


ファイル構成
全体のファイル構成は、次のようになります。todo.actionパッケージにはActionクラス、todo.daoパッケージにはDAO (Data AccessObject)クラスが含まれています(todo.toolパッケージには、Struts 2の日本語処理不具合に対応するためのクラスがあります)。contentフォルダ以下に、すべてのJSPファイルを置いています。
<ContextRoot> ├ /WEB-INF │ ├ /classes │ │ ├ /todo.action │ │ │ └ 各Actionクラス(Control) │ │ │ │ │ ├ /todo.dao │ │ │ └ 各DAOクラス(Model) │ │ │ │ │ ├ /todo.tool │ │ └ struts.xml │ │ │ ├ /content │ │ └ 各JSPファイル(View) │ │ │ ├ /lib │ │ └ 参照ライブラリー │ └ web.xml └ index.jsp
| パッケージ、フォルダ | Java/JSPファイル | 概要 |
| todo.action | ToDoAction.java | ToDoメインアクション・クラス |
| ToDoLoginAction.java | ログイン・アクション・クラス | |
| ToDoUserEntryAction.java | ユーザー登録アクション・クラス | |
| ToDoBaseAction.java | 基本アクション | |
| todo.dao | TodoDao.java | ToDoメッセージDAOクラス |
| TodoList.java | ToDoメッセージEntityクラス | |
| LoginDao.java | ログインDAOクラス | |
| LoginModel.java | ログインモデル・クラス | |
| User.java | ユーザーEntityクラス | |
| BaseDao.java | 基本DAOクラス | |
| todo.tool | FixString.java | 日本語処理暫定処理クラス |
| content | list.jsp | ToDoメッセージ一覧表示 |
| entry.jsp | ToDoメッセージ登録フォーム表示 | |
| login.jsp | ログインフォーム表示 | |
| usrentry.jsp | ユーザー登録フォーム表示 |
この記事は参考になりましたか?
- 作りながら学ぶJavaアプリケーションフレームワーク連載記事一覧
-
- Struts 2入門(8)~Struts2で構築するToDoアプリケーション~
- Struts 2入門(7)~データ連携の仕組み~
- Struts 2入門(6)~XML不要のZero Configuration~
- この記事の著者
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、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
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア

