Actionクラスの見つけ方

tutorialとtutorial1という2つのルートパッケージがあって、


"tutorial"


"tutorial1"

以下のようにactionがある場合、/addにアクセスするとtutorial1のActionが採用される。

  • tutorial.action.AddAction
  • tutorial1.action.AddAction


"tutorial1"


"tutorial"

とすると、tutorialのActionが採用される。

理由は、ActionCustomizer#customizeでactionMappingをmoduleConfigにaddする際にHashMapは同じキーなら
あとからputしたものが採用されるから(コンテナーには両方登録されている)。

また以下のようになっていて、

"Hoge"

"tutorial1"

  • tutorial1.hoge.AddHoge

がある場合に、/addにアクセスすると404になる。

理由は、RoutingFilterでsuffixがActionのものしか扱わないから。

上記のようなSAStrutsの仕様のもとでルートパッケージが2つ以上ある場合のSAStrutsPluginの仕様を考えてみる。

うーむ、とりあえずはactionパッケージがあるものを採用すればOKかな。選択ダイアログを出すのが
一番親切なんだろうけど。

ちなみに現状は、http://ml.seasar.org/archives/seasar-user/2008-April/013821.htmlのとおりです。
ええ、「"/components/component/initMethod/arg/text()"」というxpathで取ってきて1個じゃなかったら、
returnするってやっちゃってるので。