2011-01-06 3 views
3

ディスパッチャーがクエリー・ストリングを使用して呼び出すアクションをマップするように、ストラット2を構成する方法はありますか?パス名ではなくクエリー・ストリングに基づいたstruts2アクションのマッピング

たとえば、以下のリンクでは、アクションfooではなく、アクションblahを呼び出すとします。

http://domain:port/myapp/foo.do?someparameter=blah

感謝。

答えて

4

デフォルトのマッパーでは可能ではないと思います。

それは悪いがsomeparameterの値、および鎖のいずれかをチェックしたり、blahアクションにリダイレクトごfooアクション用に設定されているInterceptorを作成することではないでしょう。

+0

ありがとうございました。デフォルトのマッパーでは不可能なので、私は自分のマッパーを作成して、DefaultActionMapperを拡張しようとします。私はあなたにすべてのマークを与えるだろうが、私の評判はまだ15未満です:( –

2

+1ジェレミー:あなただけのためにクエリ文字列

の値に基づいて特定のアクションにリクエストをディスパッチしますちょっとディスパッチャアクションを作成するアクションを作成したくない場合は、他の魔法を行うことができます例:

Foo action execute(); 

if (querystring="test") { 
    setActionName("Test"); 
    return "next"; 
} 

これらの制御文字列に基づいて、特定の操作に要求を転送できます。

<result name="next" type="redirectAction">${actionName}</result> 
関連する問題