Spring MVC 3.1.3 を使用したアプリと、Dojo 1.4 で開発された UI があります。アプリケーションには、 経由でアップロードされたバイナリ ファイルを処理するコントローラがほとんどありませんdojo.io.iframe.send
。コントローラーは、で囲む必要があるjson応答を送信します
<html><body><textarea>{my json response}</textarea></body></html>.
web.xml で定義されたカスタム フィルターを実装しました。
<filter>
<filter-name>dojoIframeFilter</filter-name>
<filter-class>com.app.web.MultipartAjaxFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>dojoIframeFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
フィルタの doFilter には、http: //www.oracle.com/technetwork/java/filters-137243.html から取得したこの動作があります。
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
if (request.getContentType() != null
&& request.getContentType().contains("multipart/form-data")) {
CharResponseWrapper wrapper = new CharResponseWrapper((HttpServletResponse) response);
chain.doFilter(request, wrapper);
log.info(wrapper.toString());
//Modify response here
}
else {
chain.doFilter(request, response);
}
}
ラッパーの出力は空です。また、Spring のディスパッチャー サーブレット用のカスタム フィルターを配置したり、doFilter 内の if ブロックを廃止したり、どれも機能しないなど、他の多くの組み合わせも試しました。また、Spring インターセプターを作成しようとしましたが、これも失敗しました。誰か他のアイデアを提案してもらえますか?
前もって感謝します。
更新:スプリング セキュリティを無効にし、プレーン スプリング mvc でテストしましたが、問題は残ります。タイトルと質問の説明を修正しました。