[Seasar-user:12964] Re: S2Struts(1.2.10)のアクション自動登録について

Toshihiro Nakamura [E-MAIL ADDRESS DELETED]
2008年 2月 20日 (水) 00:45:24 JST


中村(taedium)です。

> >AutoStrutsConfigRegisterPlugInの設定はどのようになっているか
> >教えていただけないでしょうか?
> 
> 以下のようになっています。
> 
>     <plug-in className=
> "org.seasar.struts.plugin.AutoStrutsConfigRegisterPlugIn">
>         <set-property property="enableJar" value="false"/>
>         <!-- 
>         <set-property property="docRoot" value="/WEB-INF/jsp"/>
>         -->
>         <set-property property="viewExtension" value="jsp,html,view"/>
>     </plug-in>

無設定Strutsでは、デフォルトで名前が「Action」で終わるクラスを
使って設定情報を組み立てます。
http://s2struts.seasar.org/ja/s2struts.html#ZeroConfigReference

インタフェースも抽象クラスも「Action」で終わっているということです
ので、この場合は、両方が設定情報の組み立て元になりえます。
このとき、1つの(具象クラスの)Actionに対してどちらかの
一方のみの情報が使われるのですが、情報元になってほしくない
クラスが使われると意図しない挙動になります。
(どちらが使われるかの規則性はありません。)

もし、抽象クラスが必ずAbstractで始まるといった命名規則を持つならば
AutoStrutsConfigRegisterPlugInのactionClassPatternプロパティに
抽象クラスを除く正規表現を設定するのがいいと思います。
(インタフェースをIではじめるとかの規約でもいいかもしれません)

ただし、S2Strut1.2.10以前では、この機能が有効に働かない
場合があるので気をつけてください。
https://www.seasar.org/issues/browse/STRUTS-55

-- 
Toshihiro Nakamura



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