Web の設計と実装

最後に、ユーザインターフェースと画面遷移、セキュリティなど、Web アプリケーション固有のロジックを実装して、機能 を完成させます。

Note

Web の構築に関する説明は簡潔なものにとどめます。将来的に Web 層の実装フレームワークを Spring Web Flow 1 から Spring Web Flow 2 に移行する予定ですが、その際は Web の実装方式が大幅に変更されることが予想され、このページの内容も大きく変 わる可能性があるためです。

ブログ作成/更新フロー

ブログ作成とブログ編集で共通的に使用する、画面遷移を作成します。これにより、二つの機能で画面遷移を再利用で きます。アクセス権限を設定する画面とブログ概要(メッセージ)を作成する画面は既に用意されているため、これらも既 存の画面遷移を再利用できます。

  1. ブログコード入力画面となる JSP ファイル Form.jsp を作成し、そこで利用するメッセージをメッセージファイル message_xx.properties に追加します。
  2. 作成した From.jsp を blog.Form という名で Tiles 定義ファイル tiles-defs.xml に追加定義します。
  3. アクションクラス FormAction とフロー定義 form-sub-flow.xml を作成します。

ブログ作成

基本的に上述のサブフローを利用し、タイトルなどの一部の表示部分をカスタマイズします。

  1. アクションクラス CreateAction とフロー定義 create-flow.xml を作成し、必要に応じてエラー処理などに用いるメッセージをメッセージファイル message_xx.properties に追加 します。

ブログ参照

  1. ブログコード入力画面となる JSP ファイル View.jsp を作成し、そこで利用するメッセージをメッセージファイル message_xx.properties に追加します。
  2. 作成した View.jsp を blog.View という名で Tiles 定義ファイル tiles-defs.xml に追加定義します。
  3. アクションクラス ViewAction とフロー定義 view-flow.xml を作成します。
  4. パラメータではなく URL パスでアクセスできるよう、urlrewrite.xml にブログ参照の URL を追記します。
  5. 匿名ユーザもブログへアクセスできるよう、applicationContext-security.xml へ URL を追記します。

ブログ更新

基本的に上述のサブフローを利用し、タイトルなどの一部の表示部分をカスタマイズします。

  1. アクションクラス UpdateAction とフロー定義 update-flow.xml を作成し、必要に応じてエラー処理などに用いるメッセージをメッセージファイル message_xx.properties に追加 します。
  2. パラメータではなく URL パスでアクセスできるよう、urlrewrite.xml にブログ更新の URL を追記します。

ブログ削除

  1. アクションクラス DeleteAction とフロー定義 delete-flow.xml を作成し、必要に応じてエラー処理などに用いるメッセージをメッセージファイル message_xx.properties に追加 します。
Note

削除処理完了後はブログ一覧画面へリダイレクトするため、ブログ削除では urlrewrite.xml の設定を割愛してい ます。

ブログウィジェット

ブログウィジェットは機能間で共通的に利用される小窓であるため、上記の機能とは若干開発手順が異なります。

  1. ウィジェット画面となる JSP ファイル PublicBlogsWidget.jsp を作成し、そこで利用するメッセージをメッセージファイル message_xx.properties に追加します。
  2. アクションクラスに対応するコントローラ PublicBlogsWidgetPreparer を作成します。
  3. 作成した PublicBlogsWidge.jsp と PublicBlogsWidgetPreparer をそれぞれ blog.PublicBlogsWidget という名で Tiles 定義ファイル tiles-defs.xml に追加定義します。
  4. ルートに位置する Tiles 定義ファイル tiles-defs.xml のテンプレート layout に、上記の Tiles で定義したブログウィジェット blog.PublicBlogsWidgetwidget.PUBLIC_BLOGS という名で登録します。
  5. メッセージファイル message_xx.properties に、ブログウィジェット名に対応するメッセージキー widget.type.PUBLIC_BLOGS を追加します。
  6. ドメイン層に定義されている Widget クラスにブログウィジェット PUBLIC_BLOGS を追加します。
  7. このウィジェットを匿名ユーザに見せる場合は、WidgetInterceptor に追加登録します。
  8. データベーススキーマ定義ファイル unitedfront2-ddl.sqlWidget 表に、PUBLIC_BLOGS を追加します。