jp.terasoluna.fw.web.struts.plugins
クラス BLogicIOPlugIn

java.lang.Object
  上位を拡張 jp.terasoluna.fw.web.struts.plugins.BLogicIOPlugIn
すべての実装されたインタフェース:
org.apache.struts.action.PlugIn

public class BLogicIOPlugIn
extends java.lang.Object
implements org.apache.struts.action.PlugIn

ビジネスロジック入出力の設定情報をロードするプラグイン。

StrutsのPlugIn機能を使用し、サーブレット初期化時に ビジネスロジック入出力の設定を読み込み、サーブレットコンテキスト に保存する。
この機能を使用するにはstruts-config.xmlに以下のように設定する。 ( digesterRules、mapperClassは省略可。) なお、resourcesはカンマでファイルを連結できる。

 <plug-in
   className="jp.terasoluna.fw.web.struts.plugins.BLogicIOPlugIn">
    <set-property
        property="resources"
        value="/WEB-INF/blogic-io.xml"/>
    <set-property
        property="digesterRules"
        value="/WEB-INF/blogic-io-rules.xml"/>
    <set-property
        property="mapperClass"
        value="jp.terasoluna.fw.service.thin.BLogicMapper"/>
 </plug-in>
 

ビジネスロジック入出力情報反映クラスを拡張クラスに変更する場合は、 mapperClassのvalue属性にAbstractBLogicMapperのサブクラス、 またはBLogicMapperを継承したBLogicMapper拡張クラスを設定する。

blogic-io.xmlにはアクションごとにビジネスロジック の入出力情報を設定する。
下記はblogic-io.xmlの設定である。
 <blogic-io>
   <action path="/logon/logonAction">
     <blogic-param bean-name="jp.terasoluna.sample.blogic.LogonBean">
       <set-property property="userName"
                        blogic-property="userName"
                        source="form" />
       <set-property property="sessionId"
                        blogic-property="id"
                        source="session" />
     </blogic-param>
     <blogic-result>
       <set-property property="resultStr"
                        blogic-property="result"
                        dest="form" />
       <set-property property="USER_VALUE_OBJECT"
                        blogic-property="uvo"
                        dest="session" />
     </blogic-result>
   </action>
   ・・・
 </blogic-io>
 

ビジネスロジックの入力値情報は<blogic-param> 要素内で設定する。bean-name属性には入力値を格納する JavaBeanのクラス名を指定する。このJavaBeanは、後述する blogic-property属性に指定されるプロパティを所持していなければならない。
但し、入力値が存在しないビジネスロジックの場合は、bean-name属性を省略 することで、引数がnullのビジネスロジックを実行可能である。
入力値情報の元となるデータはアクションフォームやセッションなどのWeb層に 設定されている情報であり、どこからデータを取得するかは <set-property>要素のsource属性に指定された文字列で識別する。 デフォルトでは、form,sessionのどちらかをsource属性に記述することで 情報元がアクションフォームかセッションかを識別する。
入力元のデータのプロパティ名はproperty属性で指定する。 すなわち、
property="field1" source="form"と設定した場合は、 actionForm.get("field1")が実行され、 property="field2" source="session"と設定した場合は、 session.getAttribute("field2")が実行される。
上記の結果取得された値は、前述のbean-name属性で指定された JavaBeanインスタンスのプロパティ値としてビジネスロジックから取得できる。 JavaBeanから値を取得する場合は、blogic-propertyで指定した値が プロパティ名となる。blogic-property属性が指定されない場合、 property属性と同じ値をJavaBeanのプロパティ名とする。

  <set-property property="field1" blogic-property="blogicField1"
                   source="form" />
 
と設定し、ビジネスロジック内からアクションフォームのfield1 の値を取得する場合、 bean.getBlogicField1() を実行することでアクションフォームの値が取得できる。
入力元のデータがセッションの値でも同様であり、
  <set-property property="field2" blogic-property="blogicField2"
                   source="session" />
 
と設定し、ビジネスロジック内からfield2というキーでセッションに格納 されている値を取得する場合、 bean.getBlogicField2() を実行すれば良い。 つまり、ビジネスロジック側からはデータの入力元がアクションフォーム であるのか、セッションであるのかを意識する必要はない。
この設定情報はBLogicResourcesのインスタンスに 読み込まれ、サーブレットコンテキストに保存される。


公開識別子、およびDTDのURLを変更する場合は、
getPublicIdentifier()とgetDtdUrl()をオーバーライドすること。

関連項目:
BLogicAction, BLogic, BLogicResources, BLogicResult, AbstractBLogicMapper, BLogicMapper

フィールドの概要
static java.lang.String BLOGIC_MAPPER_KEY
          サーブレットコンテキストに登録されるBLogicMapperの プリフィックスキー。
private  AbstractBLogicMapper blogicMapper
          ビジネスロジック入出力情報マッパー。
private  BLogicResources blogicResources
          ビジネスロジック入出力情報を保持するインスタンス。
private static org.apache.commons.digester.Digester digester
          Digesterインスタンス。
private static java.lang.String DIGESTER_RULES_PATH
          デフォルトのblogic-io-rules.xml のパス。
private  java.lang.String digesterRules
          ビジネスロジック入出力情報ルール定義ファイル (blogic-io-rules.xml)。
private  java.lang.String dtdUrl
          DTDパス。
private static org.apache.commons.logging.Log log
          ログクラス。
private  java.lang.String mapperStr
          BLogicMapperを指定したクラスファイル名。
private  java.lang.String publicIdentifier
          DTDの公開識別子。
private  java.lang.String resources
          ビジネスロジック入出力情報定義ファイル(blogic-io.xml)。
private  org.apache.struts.action.ActionServlet servlet
          このプラグインを生成したサーブレット。
 
コンストラクタの概要
BLogicIOPlugIn()
           
 
メソッドの概要
 void destroy()
          終了時処理。
 java.lang.String getDtdUrl()
          DTDのURLを返却する。
 java.lang.String getPublicIdentifier()
          公開識別子を返却する。
 void init(org.apache.struts.action.ActionServlet servlet, org.apache.struts.config.ModuleConfig config)
          PlugInの初期化時処理。
private  void initMapper()
          マッパー登録処理。
private  void initResources()
          ビジネスロジック入出力情報初期化処理。
 void setDigesterRules(java.lang.String digesterRules)
          blogic-io-rules.xmlを設定する。
 void setDtdUrl(java.lang.String dtdUrl)
          DTDのURLを設定する。
 void setMapperClass(java.lang.String mapperStr)
          ビジネスロジック入出力情報反映クラスを設定する。
 void setPublicIdentifier(java.lang.String publicIdentifier)
          公開識別子を設定する。
 void setResources(java.lang.String resources)
          blogic-io.xmlを設定する。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

log

private static org.apache.commons.logging.Log log
ログクラス。


BLOGIC_MAPPER_KEY

public static final java.lang.String BLOGIC_MAPPER_KEY
サーブレットコンテキストに登録されるBLogicMapperの プリフィックスキー。

関連項目:
定数フィールド値

DIGESTER_RULES_PATH

private static final java.lang.String DIGESTER_RULES_PATH
デフォルトのblogic-io-rules.xml のパス。

関連項目:
定数フィールド値

publicIdentifier

private java.lang.String publicIdentifier
DTDの公開識別子。


dtdUrl

private java.lang.String dtdUrl
DTDパス。


servlet

private org.apache.struts.action.ActionServlet servlet
このプラグインを生成したサーブレット。


digesterRules

private java.lang.String digesterRules
ビジネスロジック入出力情報ルール定義ファイル (blogic-io-rules.xml)。


resources

private java.lang.String resources
ビジネスロジック入出力情報定義ファイル(blogic-io.xml)。


mapperStr

private java.lang.String mapperStr
BLogicMapperを指定したクラスファイル名。 指定なしの場合、デフォルトのクラス名が使用される。


blogicResources

private BLogicResources blogicResources
ビジネスロジック入出力情報を保持するインスタンス。


blogicMapper

private AbstractBLogicMapper blogicMapper
ビジネスロジック入出力情報マッパー。


digester

private static org.apache.commons.digester.Digester digester
Digesterインスタンス。

コンストラクタの詳細

BLogicIOPlugIn

public BLogicIOPlugIn()
メソッドの詳細

destroy

public void destroy()
終了時処理。

定義:
インタフェース org.apache.struts.action.PlugIn 内の destroy

init

public void init(org.apache.struts.action.ActionServlet servlet,
                 org.apache.struts.config.ModuleConfig config)
          throws javax.servlet.ServletException
PlugInの初期化時処理。

BLogicResources、及び BLogicMapperを サーブレットコンテキストに登録する。

このプラグインを起動したサーブレット、モジュールコンフィグが nullであるとき、 NullPointerExceptionが 発生する

定義:
インタフェース org.apache.struts.action.PlugIn 内の init
パラメータ:
servlet - このプラグインを起動したサーブレット
config - モジュールコンフィグ
例外:
javax.servlet.ServletException - 初期化時例外

initResources

private void initResources()
                    throws javax.servlet.ServletException
ビジネスロジック入出力情報初期化処理。

blogic-io.xml、blogic-io-rules.xml を利用して、設定情報をBeanに読み込む。

XML設定ファイルの形式不正、IO例外が発生した時、 ServletExceptionにラップしスローする。

例外:
javax.servlet.ServletException - ビジネスロジック入出力情報初期化処理時に 発生する例外

getPublicIdentifier

public java.lang.String getPublicIdentifier()
公開識別子を返却する。 公開識別子を変更する場合は、このメソッドをオーバーライドする。

戻り値:
公開識別子

getDtdUrl

public java.lang.String getDtdUrl()
DTDのURLを返却する。 DTDのURLを変更する場合は、このメソッドをオーバーライドする。

戻り値:
DTDのURL

initMapper

private void initMapper()
                 throws javax.servlet.ServletException
マッパー登録処理。

BLogicMapperをロードし、設定情報を インスタンスフィールドに登録する。

インスタンス内部に保持されている BLogicMapper のクラスロードに失敗した時、 ServletExceptionを スローする。

例外:
javax.servlet.ServletException - サーブレット例外

setDigesterRules

public void setDigesterRules(java.lang.String digesterRules)
blogic-io-rules.xmlを設定する。

パラメータ:
digesterRules - blogic-io-rules.xml

setResources

public void setResources(java.lang.String resources)
blogic-io.xmlを設定する。

パラメータ:
resources - blogic-io.xml

setMapperClass

public void setMapperClass(java.lang.String mapperStr)
ビジネスロジック入出力情報反映クラスを設定する。

パラメータ:
mapperStr - ビジネスロジック入出力情報反映クラス名

setPublicIdentifier

public void setPublicIdentifier(java.lang.String publicIdentifier)
公開識別子を設定する。

パラメータ:
publicIdentifier - 公開識別子

setDtdUrl

public void setDtdUrl(java.lang.String dtdUrl)
DTDのURLを設定する。

パラメータ:
dtdUrl - DTDのURL