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 文字列から設定される一連のプロパティを持つ単純なクラスです。
なぜこれが起こっているのかを説明するのに途方に暮れています。誰もこのようなものを見たことがありますか?フィルター/インターセプターに関して何か間違ったことをしていますか?
編集: ParametersInterceptorActionContext オブジェクト内に含まれるパラメーターを設定するだけのようです。これらの値が ActionContext のどこに設定されているかわかりません (また、それを示すデバッグ メッセージも表示されません)。これがどのように機能するのかを明確にしたい人はいますか?