JSP日記 To Do Listを作ってみる 03.12.10
1.セッション変数を使ったページ
掲示板が割と簡単にできたので、今度はセッション変数を使ったページに挑戦してみようと思った。sessionとかいうオブジェクトは便利だなぁと思ったので。
複数のページを移動していくようなページということで、ショッピングサイトまがいのものでも作ろうかなぁと思ったが、あまり実用的でないので、To Do Listみたいなものを作ることにしました。まぁ、To Do Listも、使うことはなさそうですけどね!
2. 設計
2. 1 何を作るか考えをまとめる
とりあえずこんな感じに考えました。追加、編集、削除、一覧表示の機能しかありません。本格的に考えるとユーザ認証もいるんでしょうか?エラー処理もまったく考えてません。。。
とりあえず、ユースケース図とステートチャート図を描いてみました。まちがってる?(OmniGraffleってのを使って描いてみました。ヘボイ図もかっこ良く見えますね。。。)

図2.1-1 ユースケース図

図2.1-2 ステートチャート図
詳細設計と言えるほど、詳細じゃぁないんですけども、、、実際のコードに近い感じの設計図を描いてみました。
まず、To Do 項目を識別するために、項目1つ1つにユニークなIDを与えます。そのIDを元にして、追加、編集、削除処理を行います。
今回の目的のセッション変数は、画面から画面に移動する際にIDを渡すために使用します。
ページ遷移は、次の図のような感じにしました。オレンジ色の部分は、ユーザに見える画面です。白色は、内部の処理だけでユーザからは見えません。

図2.2-1 ページ遷移
追加画面は編集画面(test03-edit.jsp)を共有して使います。test03-edit-1.jspでは、IDが -1 だった場合は「追加」と見なし、項目を新たに追加します。そうでない場合は「編集」と見なし、該当する項目を上書きします。
画面イメージは、以下のような感じにしてみました。

図2.2-2 画面イメージ
sessionオブジェクトを使えば、簡単に複数ページ間で値が引き渡せる。簡単ですねぇ。
設定
session.setAttribute("attr","value");
取得
String val = (String)session.getAttribute("attr");
転送先に飛ばすタグ。エラーページに飛ばしたりするときに便利そうです。今回は、これを使って編集画面や削除画面に転送してみました。
これを使うときは、<% %>を閉じてからじゃないとダメぽいです。書き方を工夫しないとソースの見た目が汚いです(と思いました)。
<%
処理
%>
<jsp:forward page="test03-edit.jsp"/>
<%
処理
%>
作業をしていると、同じような変数を何回も定義するようになってたので、includeディレクティブとやらを使用してみました。
毎回定義するような変数やら、メソッドを定義しておくと便利ですね。
ソースコード

図4.-1 一覧画面
|
|
|
|
|
図4.-2 追加、編集、削除画面
一応、予定通りの機能を作ることが出来た。予想してたより、コードをいっぱい書くことになり、ちょっと疲れたね。。。
たった数ページでも、今どのページを書いていて、何を書けばいいのか混乱してしまいそうだった。ページ遷移を図にしておいて良かった。
なんだが、まじめな日記になってしまった。
戻る