[Seasar-user:13353] Re: [S2Struts]BINDING_METHODアノテーション

Toshihiro Nakamura [E-MAIL ADDRESS DELETED]
2008年 3月 19日 (水) 22:33:24 JST


中村(taedium)です。

> > 原因はMethodBindingActionCommandというクラスが> NOT_EXECUTEという名前の定数を返してしまっているからだと考えられます。
> デバッグしましたが、MethodBindingActionCommandが呼び出されていないようです。
> デバッグポイントをしかけたのですが、呼び出されておりません。

デフォルトのs2struts.diconの設定を使う限り、
MethodBindingActionCommandは
Actionの呼び出し時に必ず実行されます。
BINDING_METHODアノテーションの使用の有無にかかわらずです。

s2struts.diconをカスタマイズしていて、
MethodBindingActionCommandを使わない設定に
しているということはないでしょうか?
1.2.12の配布ファイルに含まれるs2struts.diconと
比較してみてください。

> 何故、呼び出されていないかは、ちょっとソースを追いきれていないのですが・・・。
>
> PojoActionExecuteCommandでは、NOT_EXECUTEを返しています。
> ActionExecuteProcessorImplで、nullを返しています。

s2struts.diconのデフォルトの設定では、
ActionExecuteProcessorImplの
インスタンス変数であるcommandListの最初の要素に
MethodBindingActionCommandのインスタンスがDI
されます。
そして、commandListの2番目の要素には、
PojoActionExecuteCommandのインスタンスがDIされます。

Action呼び出し時、ActionExecuteProcessorImplは、
commandListの要素を順番に実行していきますが、
MethodBindingActionCommandが実行されないということは
そもそもcommandListへのDIが行われていないためだと
考えられます。

-- 
Toshihiro Nakamura



Seasar-user メーリングリストの案内