今回作るWebアプリケーションは、「2つの入力フォームに文字列を入力してボタンを押すと、結合した文字列が表示される」というシンプルなものです。
また、URLについては、下記のとおりに命名規則を定義します。
パス | アクション |
---|---|
/yyyySCR.do | ForwardActionを実行し、yyyy.jspに遷移する |
/zzzzBL.do | BLogicActionによりBLogicインターフェイス実装クラスのZzzzBLogicを実行 |
表3 URLの命名規則 |
今回のサンプルアプリは、分業を意識した形で作業を進めていきます。分業の際に重要なのは、独立して効率的に作業できるように、情報共有が必要な作業を初めにしっかりすることです。Webアプリケーションを作るうえで共有すべき情報は、画面遷移情報と変数情報であるため、今回の手順もそれを意識し、画面遷移と変数に関して先行して設定し、その後、画面の作成や業務処理を実装するという順番で進めていきます。
この作業手順をTERASOLUNAフレームワークを利用したWebアプリケーションの開発に適用すると、以下のとおりです(下記リストはインデックスになっています)。
それでは、実際に手順【1】〜【6】の順番で各設定を行ってWebアプリケーションを作っていきましょう。
まずは、Strutsのアクションフォームと各業務で扱う入出力DTOとのマッピング設定をする業務入出力ファイルblogic-io.xmlの設定を行います。今回は、入力に使うfirstTermやsecondTerm、結果を格納するresultTermの3つのフィールドを定義しましょう。
リスト1 業務入出力設定ファイル(blogic-io.xml、※太字はユーザー定義項目。以下同様) | |
|
・【I】アクションパスと業務入力DTOクラスを設定
・【II】業務ロジックで必要な変数を定義
・【III】業務ロジックの結果を格納する変数を定義
入力に使う変数はblogic-params要素、出力に使う変数はblogic-result要素の中に定義します。blogic-paramsについては、業務入力DTOクラスの指定が必要です。sourceやdest属性には、どのスコープのオブジェクトについて値を取得するか/反映させるかを設定します。スコープは、「form」「request」「session」「application」の4つの中から選択します。通常はアクションフォームであるため、ここではformを設定しています。
また、propertyやblogic-propertyはそれぞれアクションフォーム、業務入出力DTOのフィールド名を設定する属性ですが、特別な理由がない限り設定値を同一にすることを推奨します。
次に、struts-config.xmlにアクションフォームの設定と遷移情報を設定します。修正が必要な個所は2カ所です。
1つ目は、アクションフォームを定義するform-beans要素です。ここで、今回使用するアクションフォーム「_form」を定義します。フィールドとして、blogic-io.xmlで定義したフィールドをすべて列挙します。
リスト2 struts-config.xmlのform-beans要素の設定 | |
|
・【I】blogic-io.xmlで使用するすべての変数を定義
2点目はアクションマッピングの設定です。TERASOLUNAフレームワークでは、Spring FrameworkとStrutsの連携機能を利用し、アクションクラスの定義をSpring FrameworkのBean定義ファイルに外部化し、struts-config.xmlには各パスに対する遷移先情報のみを設定します。
TERASOLUNAフレームワークを利用する業務アプリケーションでは、1回の画面の遷移で複数のアクションを経由します。混乱を避けるため、アクション間の遷移情報を図にして整理しましょう。例えば、今回の画面遷移を図示すると、次のようになります。
TERASOLUNAフレームワークでは、画面間の遷移の際にフレームワークを経由させる目的で、画面(JSP)表示の際にForwardActionを経由することを推奨しています。BLogicAction実行後の遷移についても、ForwardActionを経由することを推奨しています。そのため、まず画面(JSP)に対して対応するForwardActionを遷移図に追加し、その後、業務ロジックに対応するBLogicActionを追加し、表示する画面に対応するForwardActionに遷移させます。
遷移図が完成したら、次にアクションマッピングの設定を記述します。図でBLogicActionとなっているところについては、使用するフォーム名の設定と、子要素として「success」などの各遷移文字列に対する遷移先を指定します。図でForwardActionとなっているところについては、parameter属性に遷移先のJSPを指定しましょう。
リスト3 struts-config.xmlのaction-mapping要素の設定 | |
|
・【I】各アクションパスに対する遷移先のパスを設定
・【II】BLogicActionの場合は、遷移文字列と遷移先パスを設定
Bean定義ファイルとは、Javaのオブジェクトと、オブジェクト間の依存性を定義する設定ファイルです。Bean定義など、Spring Frameworkについて詳しく知りたい読者は、インデックス「DI×AOP(Spring/Seasarなど)」をご覧ください。
今回編集するBean定義ファイル(moduleContext.xml)では、Strutsとの連携機能を利用したアクションクラスのBean定義と、業務ロジックのクラスのBean定義の2点を設定します。
まずは、Actionクラスを定義しましょう。Bean名にはstruts-config.xmlのaction要素に指定したパスと同じパスをname属性として指定してください。さらに、BLogicActionの場合は、name属性の設定のほか、businessLogicプロパティに実行する業務ロジックのBeanを指定する必要があります。
リスト4 struts-config.xmlのaction-mapping要素の設定 | |
|
・【I】各アクションパスに対するアクションクラスを指定
・【II】BLogicActionの場合は実行する業務ロジックのBeanを指定
・【III】業務ロジッククラスを定義。IDは手順【2】で指定したものと対応付け
次に、業務ロジックのBean定義を行います。設定するクラスは、BLogicインターフェイスを実装した業務ロジッククラスである必要があります。Bean名が上記のBLogicActionの設定と対応していることに注意してください。
以上で、業務入出力情報、画面遷移に関する設定は完了しました。次ページで、各画面やリクエスト処理について解説していきますが、ここから複数の業務開発者での分業が可能です。
Copyright © ITmedia, Inc. All Rights Reserved.