[Seasar-user:7430] Re: [S2Struts]無設定のforward先について

Katsuhiko Nagashima [E-MAIL ADDRESS DELETED]
2007年 4月 25日 (水) 08:30:32 JST


永島です。

> 仕様、というか作成者の方が想定している通りの動作、という
> 考え方で良いでしょうか?

はい。

> コンポーネント名のセパレータにスラッシュが追加された関係で、
> コンポーネント名「top/top」も検索対象となった、といった感じでしょうか?

はい。その通りです。
TopActionのActionMappingのpathが「top_top」から「/top/top」となったためです。
そのため、アクションへのリンクも
http://localhost:8080/s2struts-myapp/top/top.do
としてアクセスすることになります。

今度リリースするS2Struts1.3.0-RC1では、
自動的にActionMappingのpathを設定する機能を以下の3つ提供します。
JSPの検索についてもそれぞれのPathをもとに検索します。

    *  DefaultActionPathNamingRule
      コンポーネント名からActionを除いた名称をPathとして利用する
      例) aaa_HogeBarAction → /aaa_hogeBar

    * SubApplicationActionPathNamingRule
      ※beta-3時点のQualifiedActionPathNamingRuleクラスからクラス名を変更
      コンポーネント名からActionを除いた名称から
      さらにSubApplicationのパスを"/"に変換した名称をPathとして利用する
      例) aaa_HogeBarAction → /aaa/hogeBar

    * SplitUpperActionPathNamingRule
      コンポーネント名からActionを除いた名称から
      さらにSubApplicationのパスを"/"に変換し、
      コンポーネント名中の大文字で始まるところもすべて"/"に変換した名称をPathとして利用する
      例) aaa_HogeBarAction → /aaa/hoge/bar

参考: https://www.seasar.org/issues/browse/STRUTS-45

以上です。

07/04/24 に [E-MAIL ADDRESS DELETED]<[E-MAIL ADDRESS DELETED]> さんは書きました:
> 岩崎です。
> こんばんは。
>
> [Seasar-user:5438]
> http://ml.seasar.org/archives/seasar-user/2006-December/007353.html
>
> の設定を行ったところ、
> <html:link action="/top_top">aaa</html:link>
> <html:link action="/top/top">aaa</html:link>
> どちらからリンクしても、
> /WEB-INF/page/top/top.jsp
> にforwardするようになりました。
>
> この動作は私の希望通りなのですが、
> 仕様、というか作成者の方が想定している通りの動作、という
> 考え方で良いでしょうか?
> 想定通りであればこの設定を使うことができそうです。
>
> コンポーネント名のセパレータにスラッシュが追加された関係で、
> コンポーネント名「top/top」も検索対象となった、といった感じでしょうか?
>
> ----------------------------------------
> On Tue, 24 Apr 2007 08:57:03 +0900
> "Katsuhiko Nagashima" <[E-MAIL ADDRESS DELETED]> wrote:
>
> > 永島です。
> >
> > > ということは、@StrutsActionForwardアノテーションを使わない限り、
> > > forward先のJSPは全て
> > > <set-property property="docRoot" value="/WEB-INF/page"/>
> > > の直下にないといけない、ということでしょうか?
> >
> > 説明が不足しておりました。m(_ _)m
> > パッケージの階層にもそって検索します。
> > myapp.web.top.TopActionの場合、
> > /WEB-INF/page/myapp/web/top/top_top.jsp
> > /WEB-INF/page/web/top/top_top.jsp
> > /WEB-INF/page/top/top_top.jsp
> > /WEB-INF/page/top_top.jsp
> > のような順番でforward先のJSPを検索します。
> >
> > > アノテーションをActionクラスに書かず、
> > > Actionクラスのパッケージ構造と同じような階層構造で
> > > JSPを保存できる方法があったら教えてください。
> > > (ドキュメント通り「/WEB-INF/page/top/top.jsp」が
> > >  検索されるのが一番良いのですが)
> >
> > 現状、提供しているのは
> > Actionのコンポーネント名(ActionMappingのpath)を元に
> > JSPファイル名を決め、パッケージ階層を検索する機能のみです。
> > Actionクラス名でJSPファイル名を決め、
> > パッケージ階層を検索する機能も検討したいと思います。
> > ご指摘ありがとうございます。
> >
> > 07/04/23 に [E-MAIL ADDRESS DELETED]<[E-MAIL ADDRESS DELETED]> さんは書きました:
> > > 岩崎です。
> > > ご回答ありがとうございます。
> > >
> > > > Actionクラス名ではなくコンポーネント名で検索し、
> > > > forward先のJSPを特定しています。
> > > > 提示していただいた例では、
> > > > Actionのコンポーネント名が「top_topAction」となり
> > > > 「top_top.jsp」をパッケージの階層にしたがって検索しています。
> > > > そのため、forward先のJSPとして
> > > > 「/WEB-INF/page/top_top.jsp」が選択されてます。
> > >
> > > ということは、@StrutsActionForwardアノテーションを使わない限り、
> > > forward先のJSPは全て
> > > <set-property property="docRoot" value="/WEB-INF/page"/>
> > > の直下にないといけない、ということでしょうか?
> > >
> > > アノテーションをActionクラスに書かず、
> > > Actionクラスのパッケージ構造と同じような階層構造で
> > > JSPを保存できる方法があったら教えてください。
> > > (ドキュメント通り「/WEB-INF/page/top/top.jsp」が
> > >  検索されるのが一番良いのですが)
> > >
> > >
> > > よろしくお願いします。
> > >
> > > ----------------------------------------
> > > On Mon, 23 Apr 2007 08:41:22 +0900
> > > "Katsuhiko Nagashima" <[E-MAIL ADDRESS DELETED]> wrote:
> > >
> > > > 永島です。
> > > >
> > > > > ■質問■
> > > > > S2Strutsのドキュメント
> > > > > (http://s2struts.seasar.org/ja/s2struts.html)
> > > > > 「actionタグ内のforwardタグの属性値」を見ると、
> > > > > この場合に呼び出されるJSPファイルは
> > > > > 「/WEB-INF/page/top/top.jsp」に思えるのですが、
> > > > > 私の理解がおかしいのでしょうか?
> > > > > (ちなみに「/WEB-INF/page/top/top.jsp」も
> > > > >  ファイルを置いているのですが、呼び出されませんでした)
> > > >
> > > > ドキュメントの記述内容に誤りがあります。
> > > >
> > > > Actionクラス名ではなくコンポーネント名で検索し、
> > > > forward先のJSPを特定しています。
> > > > 提示していただいた例では、
> > > > Actionのコンポーネント名が「top_topAction」となり
> > > > 「top_top.jsp」をパッケージの階層にしたがって検索しています。
> > > > そのため、forward先のJSPとして
> > > > 「/WEB-INF/page/top_top.jsp」が選択されてます。
> > > >
> > > >
> > > > 07/04/20 に ysmt<[E-MAIL ADDRESS DELETED]> さんは書きました:
> > > > > 岩崎と申します。
> > > > > お世話になっております。
> > > > >
> > > > > S2StrutsV1.3.0-beta-3を試しています。
> > > > > 無設定ActionのForward先JSPファイルについて、
> > > > > 以下の通り質問いたします。
> > > > >
> > > > > 01.
> > > > > convension.diconは以下の通りです。
> > > > > <initMethod name="addRootPackageName">
> > > > >     <arg>"myapp"</arg>
> > > > > </initMethod>
> > > > >
> > > > > 02.
> > > > > struts-config.xmlの設定は以下の通りです。
> > > > > <plug-in className="org.seasar.struts.lessconfig.plugin.
> > > > > AutoStrutsCon figRegisterPlugIn">
> > > > >     <set-property property="enableJar" value="false"/>
> > > > >     <set-property property="docRoot" value="/WEB-INF/page"/>
> > > > > </plug-in>
> > > > >
> > > > > 03.
> > > > > 「myapp.web.top」パッケージに「TopAction」クラスを作成しました。
> > > > > 以下の1メソッドのみを定義しています。
> > > > > public String execute() {
> > > > >     return "success";
> > > > > }
> > > > >
> > > > > 04.
> > > > > index.jspから、このアクションへのリンクを設定しました。
> > > > > http://localhost:8080/s2struts-myapp/top_top.do
> > > > > パッケージを_でつないでいます。
> > > > >
> > > > > 05.
> > > > > リンクをクリックすると、TopActionが呼び出されるのですが、
> > > > > forward先のJSPファイルとして、
> > > > > 「/WEB-INF/page/top_top.jsp」
> > > > > が呼び出されます。
> > > > >
> > > > > ■質問■
> > > > > S2Strutsのドキュメント
> > > > > (http://s2struts.seasar.org/ja/s2struts.html)
> > > > > 「actionタグ内のforwardタグの属性値」を見ると、
> > > > > この場合に呼び出されるJSPファイルは
> > > > > 「/WEB-INF/page/top/top.jsp」に思えるのですが、
> > > > > 私の理解がおかしいのでしょうか?
> > > > > (ちなみに「/WEB-INF/page/top/top.jsp」も
> > > > >  ファイルを置いているのですが、呼び出されませんでした)
> > > > >
> > > > > よろしくお願いいたします。
> > > > > _______________________________________________
> > > > > 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 mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>


-- 
Katsuhiko Nagashima



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