search?q=blah
私の以前の質問をフォローアップすると、URL のような URLがクエリに変換される私の struts プロジェクトで、URL 書き換えがある程度正しく機能するようになりましたsearch.action?q=blah
。これにはUrlRewriteFilterを使用します。これはストラットにうまく転送されるように見えますが (FORWARD でフィルター マッピングがあることを確認した場合)、ParametersIntercepter
実行時にすべてのパラメーターを 2 回キャッチし、間にコンマを追加しているようです。したがって、次のようになります。
search.action?q=blah
Criteria オブジェクト (詳細を参照) のパラメーター q を次のように設定します。
[ blah, blah ]
パラメータはModelDriven<Criteria>
Where Criteria を使用して設定されます。これは、GET 文字列から設定される一連のプロパティを持つ単純なクラスです。
なぜこれが起こっているのかを説明するのに途方に暮れています。誰もこのようなものを見たことがありますか?フィルター/インターセプターに関して何か間違ったことをしていますか?
編集: ParametersInterceptor
ActionContext オブジェクト内に含まれるパラメーターを設定するだけのようです。これらの値が ActionContext のどこに設定されているかわかりません (また、それを示すデバッグ メッセージも表示されません)。これがどのように機能するのかを明確にしたい人はいますか?