[Seasar-user:12981] [SAStruts] urlPatternの優先順位
Kazuya Sugimoto
[E-MAIL ADDRESS DELETED]
2008年 2月 21日 (木) 11:52:53 JST
杉本です。
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が優先であるという
仕様で間違いないでしょうか?
--
Kazuya Sugimoto
Microsoft MVP Visual Developer - Solutions Architect
http://d.hatena.ne.jp/sugimotokazuya/
Seasar-user メーリングリストの案内