目次 > 第2章 Server(Web)版チュートリアル > 2.4 ログオン/ログオフ > 2.4.5 アクションパスとビジネスロジッククラスの呼出設定
2.4.5 アクションパスとビジネスロジッククラスの呼出設定
ビジネスロジッククラスは、Server(Web)版が提供するBLogicActionクラスから呼び出される。以下にアクションマッピング図を示す。
■ アクションマッピング図
本項では、上図の網掛け部分のアクション設定と、2.4.4 ビジネスロジッククラスの作成と設定で作成したビジネスロジッククラスを呼び出す手順を説明する。
手順
本項では以下の作業が必要になる。
(1) ログオン画面の編集
- “terasoluna-spring-thin-blank\webapps\logon\logon.jsp”を開き、以下のように編集する。
<%@ page contentType="text/html; charset=Windows-31J"%> <%@ taglib uri="/struts-html" prefix="html" %> <%@ taglib uri="/struts-bean" prefix="bean" %> <%@ taglib uri="/struts-logic" prefix="logic" %> <%@ taglib uri="/terasoluna-struts" prefix="ts" %> <%@ taglib uri="/terasoluna" prefix="t" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html:html> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <title>ログオン画面</title> </head> <body> <table border="0" style="width:100%;"> <tr> <td align="center"> <html:img module="/" page="/image/terasoluna_logo.gif" /> </td> </tr> <tr> <td align="center"> <h2> ログオン画面 </h2> </td> </tr> </table> <!-- ここから --> <ts:form action="/logon/logonBL"> <table border="0" align="center"> <tr> <td> UserId: </td> <td> <html:text property="userId"/> </td> <td> <ts:submit value="ログオン"/> </td> </tr> </table> </ts:form> <!-- ここまで --> </body> </html:html>
Server(Web)版が提供する<ts:form>タグはStrutsの<html:form>タグを拡張しており、サブミットした際にリクエストURLにランダムなIDを付与し、ブラウザのキャッシュを避けることができる。action属性にアクションパスを記述する。
また、<ts:submit>タグはStrutsの<html:submit>タグを拡張している。
備考
今回は使用していないが、<ts:submit>タグのtarget属性値を設定することで、フォームのターゲットを指定することができる。
(2) Struts設定ファイルの編集
ログオン画面からビジネスロジック呼び出すBLogicActionを実行するアクションパスと、メニュー画面へ遷移するアクションパスを設定する。
また、ログオン画面表示用のアクション設定にアクションフォームの設定を追加する。
- “terasoluna-spring-thin-blank\webapps\WEB-INF\logon\struts-logon-config.xml”を開き、以下のように修正、追加する。
<!-- ======================================== アクションマッピング定義 --> <action-mappings type="jp.terasoluna.fw.web.struts.action.ActionMappingEx"> <!-- 修正 --> <!-- ログオン画面表示用アクション --> <action path="/logon/logonSCR" name="_logonForm" scope="session" parameter="/logon/logon.jsp" /> <!-- 追加 --> <!-- ログオン処理用アクション --> <action path="/logon/logonBL" name="_logonForm" scope="session"> <forward name="success" path="/logon/menuSCR.do" /> </action> <!-- メニュー画面表示用アクション --> <action path="/logon/menuSCR" name="_logonForm" scope="session" parameter="/logon/menu.jsp" /> </action-mappings>
<action>タグのname属性には参照するアクションフォーム名を設定する。
ビジネスロジックを呼び出すアクションパスの場合、次の遷移先は<forward>タグを利用する。以下に属性を示す。
属性 | 説明 |
name | 遷移先文字列 ビジネスロジックで指定した結果文字列に対応する |
path | 遷移先のアクションパス |
ログオン処理用アクションでは、ビジネスロジッククラスが返却するBLogicResultに結果文字列“succsess”が設定された場合、path属性に指定したメニュー画面表示用アクションを実行する。
備考
画面遷移のみ行うアクションパスの設定については、「2.3.2 初期画面と画面遷移の設定 (2) Struts設定ファイルの編集」を参照。
(3) Spring設定ファイルの編集
ログオン処理とメニュー画面表示用のActionクラスを設定する。
- “terasoluna-spring-thin-blank\webapps\WEB-INF\logon\logonContext.xml”を開き、以下の箇所にActionクラスを設定する。
<!-- アクション定義 --> ・・・略・・・ <!-- ログオン処理用アクション定義 --> <bean name="/logon/logonBL" scope="singleton" class="jp.terasoluna.fw.web.struts.actions.BLogicAction" > <property name="businessLogic" ref="LogonBLogic" /> </bean> <!-- メニュー画面表示用アクション定義 --> <bean name="/logon/menuSCR" scope="singleton" class="jp.terasoluna.fw.web.struts.actions.ForwardAction" />
ログオン処理を定義した<bean>要素のclass属性には、ビジネスロジッククラスを呼び出すBLogicActionクラスを指定する。
子要素である<property>には呼び出すビジネスロジッククラスを指定する。name属性には“businessLogic”と固定で記述する。
ref属性に「2.4.4 ビジネスロジッククラスの作成と設定 (2) Spring設定ファイルの編集」で設定したビジネスロジッククラスのBeanIDを指定することで、ビジネスロジックの実装クラスを参照させることができる。