まえに、Strutsの要素技術の基本的構造というのを、その1だけ書いて、以降、何も書かなかったので、これから、続きを書いてみる。
まず、前に書いた流れだと、はじめ、
○Strutsを基本的に構成するもの
Action
ActionForm
Struts-config.xml
JSPファイル
なので、これらのファイルと、画面定義書の関係を示して、設計から、プログラムにどのように落ちてくるかについて、書きたいと思います。
で、画面定義書は、主に、画面遷移図と、各画面レイアウト説明(っていうのかな?)に分かれると思います。
今回は特に、「各画面レイアウト説明」のどの部分から、それぞれのソースが出来てくるかについて、書きたいと思います。
で、画面定義についてなんですが、今回は、発注者ビューガイドラインのVer1.0(2008年7月)版、第一部-71ページ(PDFのページ数は88/291)の右の図
著作権表示:CopyrightまるC2008 IPA
(まるCは、著作権のコピーライトのCです)
をもとに説明します。
■各ファイルの概要
まず、各ファイルの概要について書きます。
(1)Actionクラス
ここのexecuteに処理内容が書かれる。
(2)ActionForm
画面の内容のBean(フォームBean)
・画面項目
・項目のSetter
・項目のGetter
が基本的に書かれている。
・初期化のresetや、
・値チェックのvalidate()
もここにかかれることがある
(validatorを使う場合、ActionFormでなく、ValidatorFormを使う)
(3)Struts-config.xml
以下の内容が書かれる
・data-sources
データベース接続に関して使うこともある
・form-beans
ActionForm等のフォームBeanをかく
・action-mappings
Actionの定義と、forward先について
・global-exceptions、global-forward
全体として、飛ばし先を決めたり、例外・エラー画面を決めたりするとき
・message-resources
メッセージをまとめたメッセージリソースについて
・plug-in
プラグイン(validatorはプラグイン)
・その他もろもろ
controllerにかかれることもある
(4)JSPファイル
画面を記述する。ここで、strutsタグを使って、ActionFormの入出力項目と結びつけたり
bean:writeをつかって、beanやセッションの内容を画面に記述する
■画面定義書からプログラムへ
では、上述の画面定義書が、どのようにプログラムに関係していくかという話なのですが・・・
(A)画面定義書の「使用する部品」から、
「JSP」、「ActionForm」、「Actionクラス」が決定します。
使用する部品(項目)の「画面部品の種類」(=型)が、
テキストボックスのような入力するものであれば、該当項目を
JSPでは、HTMLタグなどを使って、入力項目のタグを作り
ActionFormでは、対応する部品のフィールド、setter,getterをつくります
なお、「画面部品の種類」と表示範囲から、エラーチェックがかけますが、これは
・JSPにjavascriptとして書く
・Validatorを使って書く
・validateで書く
・action内に書く
と、いろいろありますので、てきとーに決めて(決める基準あります)かきます。
ボタンであれば
Actionをつくります。
このとき、1画面にボタンが複数ある場合
1画面1アクションでメソッドがボタンごとに変わる
1画面1アクション1メソッドでメソッド内切り替え
1ボタン(イベント)1アクションでつくる(1画面で複数アクション)
の3通りの作り方がある。詳しくは何回か先に話す。
Actionの内容は、「操作手順」から読み取るしかない??
出力のみの項目であれば
Strutsタグのbean:writeを使って書きます。
値はSessionに入れておけば、nameで指定すればかけます。
bean(フィールド、setter,getterがあるクラス)の場合、それをsessionに入れれば、
name=セッションに入れたbeanのキー名 property=フィールド名
表示しない場合
StrutsのHTMLタグのhiddenでかけます。
(B)画面定義書のレイアウトからJSPが決まります。
ですが、たぶん、このレイアウト、HTMLで書いているから、その場合、
拡張子をJSPにして、その後、上記の
HTMLタグ
bean:writeタグ
などのstrutsタグをいれます(logicも)
(C)(A)で決まった、ActionとActionFormからstruts-config.xmlがかけます
Action=actionタグ(action-mapping内)
ActionForm=form-beanタグ(form-beans内)
次回は、画面遷移図と、action,struts-config.xmlの関係