動作画面

エントリー画面です。 ログイン処理をおこなわせます。
IDとPassを入力して、ボタンをクリックすると処理選択メニュー画面に遷移します。


処理選択メニュー画面です。 表示・登録・削除・変更の一通りの処理をおこなわせます。
全ての処理の最後はこのトップ画面に戻ります。

上段には、ID名とログアウトを配置してあります。
下段には処理選択画面と現在登録されているデータ一覧が表示されております。
リンクかボタンをクリックすると各処理に遷移します(処理サンプルなのでリンクとボタンを混在させています)。


マウスクリックにより次の各画面に遷移します。

データベース一覧の表示画面です。
処理選択メニュー画面のデータ一覧の表示と同じものです。


新規登録の表示画面です。
「追加」ボタンにより新規データがデータベースに作成されます。
「キャンセル」ボタンにより処理選択メニュー画面に戻ります。


データ削除の表示画面です。
「削除」ボタンによりデータベースからID番号に一致するデータが削除されます。
「キャンセル」ボタンにより処理選択メニュー画面に戻ります。


データ変更の表示画面です。
「更新」ボタンによりデータベースが更新されます。
「キャンセル」ボタンにより処理選択メニュー画面に戻ります。


さらに、エラー画面を2つだけ用意してあります。

ログインでIDが未入力の場合に表示される。


下記はエラー詳細を表示された画面です。



この程度のアプリケーションでも全ての処理をキッチリ組み込むとロジック・画面が大量に必要になります。
サンプルとしてみた場合には、複雑で分りにくくなりますのであえて手抜きしてます。


デモ・サンプルの構成とファイルを示します。
─┬─ pages/ ─┬─login.jsp
├─logout.jsp
└─その他.jsp
├─ WEB-INF/ ─┬─struts-config.xml
├─web.xml
├─struts-html.tld
├─その他.tld
├─classes/─┬─filters/───SetCha〜Filter.class
├─frmapl/─┬─LoginAction.class
├─LoginForm.class
└─その他FrmApl.class
└─mypackage/───NameTable.class
├─dist/───Frmapl.war
├─src/─┬─build.xml
└─java/─┬─LoginAction.java
├─LoginForm.java
└─その他FrmApl.java
└─lib/─┬─commons-beanutils-1.7.0.jar
├─struts-core-1.3.8.jar
└─その他.jar
├─ META-INF/───

これは『struts-blank-X.X.X.war』を解凍した階層構造のまま使っております。


ソースファイルは、/src/java/* の一ヶ所に作成する(フォルダ分割しない)。
build.xmlは、ANTコンパイル用のコマンドファイルです。最終的にFrmapl.warを作成します。

JAVAは自由度が高いので好きなように配置可能ですが、ツール類は厳しくなります。
例えば、Eclipseではソースとクラスの配置は同じにしないと正常には動作しませんし、mavenでは各配置位置が固定されているようです。

classesフォルダが階層分けされておりますが、これはソースファイルの「package frmapl」文により自動的に確定されます。
通常のJavaアプリでは「org.struts.abc.defg.frmapl」などのようにさらに細分化しています。

コンパイルは、コマンドプロンプトでおこないます。
コンパイルする( src/ フォルダに移動してから)。
ant compile

デプロイする(Frmapl.war ファイルの作成です)。
ant dist

あとは、Tomcatのwebappsフォルダにfrmapl.warファイルをコピーして起動するのみです。
コピーしても前の状態が残っていると更新されない場合が多いので削除したほうが良いでしょう。
下記内容で cp.cmd ファイルを作成すれば、簡単かつ楽に作業ができます。
copy ..\dist\Frmapl.war C:\Java\tomcat\webapps\
rd /s /q C:\Java\tomcat\webapps\Frmapl
置き場所は、build.xmlと同じ src/ フォルダです。

PHPのデモ・サンプルよりも機能アップしてありますので、資料としてもより十分な内容だと思います。