[Seasar-user:12984] Re: [SAStruts] urlPattern の優先順位

Kazuya Sugimoto [E-MAIL ADDRESS DELETED]
2008年 2月 21日 (木) 14:54:31 JST


杉本です。

> 全選択の実行メソッドは、検索の順番が最後になるように
> 調整を入れたいと思います。

ありがとうございます。
分かりやすくなります。


08/02/21 に Yasuo Higaさんは書きました:
> ひがです。
>
> > 杉本です。
> >
> > SAStrutsの仕様の確認をさせてください。
> >
> > Actionに以下のようなメソッドがあるとします。
> >
> > @Execute(urlPattern="{xxId}", validator=false)
> > public String index() {
> >    // そもそもurlPattern="{index/{xxId}"にすべき?
> >    ・・・画面を表示するための処理
> > }
> >
> > @Execute(validator=false)
> > public String showPage() {
> >    return index();  // urlPatternを使わずに画面を表示したいのでこんな感じに
> > }
> >
> > @Execute(input="showPage")
> > public String delete() {
> >    ・・・削除処理
> > }
> >
> > POSTでdeleteメソッドが呼ばれて、入力検査にかかった場合ですが、
> > 上記のコードだとうまく動作しません。
> >
> > showPageにフォワードしたくてもurlPatternの方が優先順位が高く、
> > アクション名.do?xxId=showPage&SAStruts.method=indexに
> > フォワードしてしまいます。
> >
> > 優先順位を@ExecuteにするとxxIdに文字列を許可した場合、@Executeが
> > 付いたメソッド名をxxIdのパラメータ値に使えないので、正しい仕様だと思いますが、
> >
> > POSTではindex以外のメソッドが呼び出せるのに、URL直接アクセスや
> > フォワードで表示しようとしたらindex以外のメソッドが呼び出せないで
> > 少しはまってしまいました。
> >
> > URL直接アクセス時とフォワードした場合はurlPatternが優先であるという
> > 仕様で間違いないでしょうか?
> >
> 正確には、パスがアクション名で終わっている場合
> (パラメータ用のパスがない場合)は、
> メソッド名がパラメータに含まれている実行メソッドが選ばれます。
> パラメータにshowPageもdeleteも含まれているようなケースは、
> 先に見つかったほうが選択されます。
>
> 先というのは、XxxAction.class.getMethods()が返す順番が
> 先という意味です。
>
> 上記以外は、XxxAction.class.getMethods()が返す順番に
> 実行メソッドがチェックされ、urlPatternが最初に一致したものが
> 選ばれます。
>
> urlPatternが{xxx}のように全選択のときが、
> はまりそうですね。
> 全選択の実行メソッドは、検索の順番が最後になるように
> 調整を入れたいと思います。
>
> よろしくお願いします。
> >
> > --
> > Kazuya Sugimoto
> > Microsoft MVP Visual Developer - Solutions Architect
> > http://d.hatena.ne.jp/sugimotokazuya/
> > _______________________________________________
> > 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
>


-- 
Kazuya Sugimoto
Microsoft MVP Visual Developer - Solutions Architect
http://d.hatena.ne.jp/sugimotokazuya/


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