[Seasar-user:5440] Re: S2Struts hot deploy 時に定数アノテーションのみ反映されない追伸

原田 [E-MAIL ADDRESS DELETED]
2006年 12月 13日 (水) 13:01:14 JST


原田です。

ありがとうございます。

後ほど確認します。


"Katsuhiko Nagashima" <[E-MAIL ADDRESS DELETED]> wrote:

> 永島です。
> 
> 返信が遅くなり申し訳ありません。
> 
> S2Strutsで以下の点を修正しコミットしました。
> ・Actionクラスがサブアプリ配下にある場合に
>  "/"(スラッシュ)をセパレータに利用することも可能とするようにしました。
>  例えば、root.web.manage.EmployeeActionの場合、
>  今までは/manage_employeeの形式のみでしたが、
>  今回の修正により/manage/employeeの形式にも対応しました。
>  利用する場合は、s2struts.diconのactionPathNamingRuleを以下のように変更し、
> ----
> 	<!--
> 	<component name="actionPathNamingRule"
> class="org.seasar.struts.lessconfig.config.rule.impl.DefaultActionPathNamingRule"/>
> 	-->
> 	<component name="actionPathNamingRule"
> class="org.seasar.struts.lessconfig.config.rule.impl.QualifiedActionPathNamingRule"/>
> ----
>  convention.diconのviewExtension、viewRootPathプロパティを
>  空に設定して下さい。
> ----
> 	<component class="org.seasar.framework.convention.impl.NamingConventionImpl">
> 		<initMethod name="addRootPackageName">
> 			<arg>"root"</arg>
> 		</initMethod>
> 		<property name="viewExtension">""</property>
> 		<property name="viewRootPath">""</property>
> 	</component>
> ----
> ・ActionFormがサブアプリ配下にある場合でも
>  パッケージ部分を含めないコンポーネント名でBindできるように修正しました。
> 
> 
> 以降に修正していただきたい点について記述します。
> 
> ・パッケージ構成について
> S2StrutsではアノテーションをHOT deployで動作させるために
> S2ContainerからActionクラスやDtoクラスを取得していますので、
> S2のSMART deployのパッケージ構成に従う必要があります。
> 以下の変更をして頂けないでしょうか。
> 
> ルート.pc.login.action.XXXXLoginAction.java の場合、
> convention.diconでpcパッケージをwebパッケージにリネームするか、
> 以下のようにsubApplicationRootPackageNameとして設定して下さい。
> -----
> 	<component class="org.seasar.framework.convention.impl.NamingConventionImpl">
> 		<initMethod name="addRootPackageName">
> 			<arg>"root"</arg>
> 		</initMethod>
> 		<property name="subApplicationRootPackageName">"pc"</property>
> 	</component>
> -----
> また、loginサブアプリケーション下にactionやdtoなどの
> 個別パッケージを定義することはできないようですので、
> actionやdtoのパッケージをはずして
> ルート.web.login.XXXXLoginAction.java
> ルート.web.login.LoginDto.java
> のような構成にして下さい。
> 
> SMART deployを行うためのパッケージ構成につきましては
> http://s2container.seasar.org/ja/S2.4SmartDeploy.html
> に詳細がのっていますので、参考にして下さい。
> 
> 
> ・ACTIONアノテーションについて
> ACTIONアノテーションのpath名を指定した場合、
> HOT deployでConfig情報を読み込むことができなくなりますので、
> 無設定でpathを設定するようにして下さい。
> (これはS2Strutsの制限です)。
> 今回の修正で"/"(スラッシュ)形式のpathにも対応しましたので
> "ルート.web.login.XXXXLoginAction.java"に対して無設定とした場合、
> pathは"/login/XXXLogin"となります。
> 
> 
> 以下にパッケージ構成とアノテーションのサンプルをアップしましたので、
> こちらも参考にしていただければと思います。
> https://www.seasar.org/svn/s2struts/tags/temp/2006-12-12/S2StrutsExampleEmployee-V1.3.0-beta-3-SNAPSHOT.zip
> 
> 以上です。
> 
> 06/12/05 に 原田<[E-MAIL ADDRESS DELETED]> さんは書きました:
> > 原田です。
> >
> > ルート.pc.login.action.XXXXLoginAction.java
> > ルート.pc.login.action.XXXXLoginPostAction.java
> > ルート.pc.login.action.impl.XXXXLoginActionImpl.java
> > ルート.pc.login.dto.LoginDto.java
> >
> > で、
> >
> > public interface XXXXLoginAction {
> >         public static final String ACTION = "path=/login/login, validate=false";
> >         public static final String SUCCESS_FORWARD = "path=/pages/login/XXXXLogin.html";
> >     String SUCCESS = "success";
> >
> >     String initialize();
> > }
> >
> > public interface XXXXLoginPostAction {
> >         public static final String ACTION = "name=loginDto,path=/login/loginPost, validate=true,input=/pages/login/XXXXLogin.html";
> >
> >         public static final String SUCCESS_FORWARD = "path=/index.html";
> >       String SUCCESS = "success";
> >
> >         public static final String FUNCXX_FORWARD = "path=/funxx/index.do";
> >       String FUNCXX= "funcxx";
> >
> >     String login();
> > }
> >
> > のような感じですね。XXXXLoginActionImplは2つのinterfaceを多重実装しています。
> >
> > 以上よろしくお願いします。
> >
> >
> >
> > "Katsuhiko Nagashima" <[E-MAIL ADDRESS DELETED]> wrote:
> >
> > > 永島です。
> > >
> > > お手数をお掛けして申し訳ないです。
> > > 状況を理解できました。
> > > ご指摘の問題は、S2Strutsの問題です。
> > >
> > > 現状では、
> > > FormBeanに対して、StrutsFormアノテーションの
> > > name属性を指定してForm名を変えた場合、
> > > その他のアノテーションをHOT deployで読み込むことができません。
> > > (例外としてDtoの部分をFormに変えるのみはOKとしています)
> > >
> > > また、
> > >   ルート.web.manage.EmployeeDto
> > >   ルート.web.manage.EmployeeEditAction
> > >   ルート.web.manage.impl.EmployeeEditActionImpl
> > > のように配置し、
> > > EmployeeDtoをStrutsActionFormアノテーションを指定せず定義した場合、
> > > Form名はmanage_employeeDtoとなり、
> > > 以下のようにStrutsActionアノテーションで指定し、
> > > -----
> > > public interface EmployeeEditAction {
> > >     String ACTION = "name = manage_employeeDto";
> > >          :
> > > }
> > > -----
> > > さらにFormを受け取るActionクラスも以下のように
> > > 受け取らないといけなくなってます。
> > > -----
> > > public class EmployeeEditActionImpl implements EmployeeEditAction {
> > >
> > >     private EmployeeDto employeeDto;
> > >
> > >     public EmployeeDto getManage_employeeDto() {
> > >         return employeeDto;
> > >     }
> > >
> > >     public void setManage_employeeDto(EmployeeDto employeeDto) {
> > >         this.employeeDto = employeeDto;
> > >     }
> > >         :
> > > ------
> > >
> > > このままでは、利用しづらいと思いますので、
> > > Form名やFormを受け取る部分について修正しようと思います。
> > >
> > > また、修正のとき参考にしたいと思いますので、
> > > 原田さんのパッケージ構成と
> > > StrutsAction、StrutsActionFormアノテーションの指定内容を
> > > 教えていただいてもよろしいでしょうか。
> > >
> > > よろしくお願いします。
> > >
> > > 06/12/04 に 原田<[E-MAIL ADDRESS DELETED]> さんは書きました:
> > > > 原田です。
> > > >
> > > > > S2自体のHOT deployはルート.web.サブアプリケーションに
> > > > > DTOをおいても認識されます。
> > > >
> > > > それはできていますが、定数アノテーションのみNGなのです。
> > > >
> > > > よろしくお願いします。
> > > >
> > > >
> > > > Yasuo Higa <[E-MAIL ADDRESS DELETED]> wrote:
> > > >
> > > > > ひがです。
> > > > >
> > > > > > 原田です。
> > > > > >
> > > > > > ルート.dto以下に入れるとできるようになりました。
> > > > > >
> > > > > > しかし、・・・・ちょっとこの構成は・・・・・。
> > > > > >
> > > > > > 今回結構大規模な開発なので、きびしいです。
> > > > > >
> > > > > > できればActionと同列におきたいのですが・・・。
> > > > > >
> > > > > S2自体のHOT deployはルート.web.サブアプリケーションに
> > > > > DTOをおいても認識されます。
> > > > >
> > > > > Yasuo Higa
> > > > > The Seasar Project
> > > > > _______________________________________________
> > > > > Seasar-user mailing list
> > > > > [E-MAIL ADDRESS DELETED]
> > > > > https://ml.seasar.org/mailman/listinfo/seasar-user
> > > >
> > > > _______________________________________________
> > > > Seasar-user mailing list
> > > > [E-MAIL ADDRESS DELETED]
> > > > https://ml.seasar.org/mailman/listinfo/seasar-user
> > > >
> > >
> > >
> > > --
> > > Katsuhiko Nagashima
> > > _______________________________________________
> > > Seasar-user mailing list
> > > [E-MAIL ADDRESS DELETED]
> > > https://ml.seasar.org/mailman/listinfo/seasar-user
> >
> > _______________________________________________
> > Seasar-user mailing list
> > [E-MAIL ADDRESS DELETED]
> > https://ml.seasar.org/mailman/listinfo/seasar-user
> >
> 
> 
> -- 
> Katsuhiko Nagashima
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user




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