はじめに
「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 | ユーザー登録フォーム表示 |