次の問題を解決しようとしています。
すべてのリクエストにヘッダーとフッターを追加して、独自の viewResolver をセットアップしました (ありがとう、stackoverflow ;p)。これはうまくいきます。
問題は、特定のコンテナーにビューを返す私の ajax-requests も、もちろん意図されていないヘッダーとフッターを自動的に取得することです。
リクエストに「/ajax/」が含まれている場合、viewResolver を別の動作にするにはどうすればよいですか? 実際、jstl-Viewer は問題なく機能しますが、'/ajax/' で異なる動作を行うように spring に指示する方法がわからないため、現時点では、私自身のリゾルバーが使用される唯一のものです。
ここで私自身のリゾルバは、非常にシンプルで、ここから取ったものです:
public class ViewTemplate extends InternalResourceView {
@Override
protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception {
String dispatcherPath = prepareForRendering(request, response);
request.setAttribute("partial", dispatcherPath.substring(nthOccurrence( dispatcherPath, '/' , 2 ) + 1));
RequestDispatcher rd = request.getRequestDispatcher("/WEB-INF/views/layout.jsp");
rd.include(request, response);
}
// more functions like nthOccurrence
}
indexOf("/ajax/") != -1 jstView を呼び出す必要がある場合、このリゾルバーに通知する必要がありますか? はいの場合、どのように?それとも私はそれを完全に間違っていますか?すべての非 ajax リクエストの場合と同様に、ヘッダー/フッターを維持したいと思います。
どんな助けでも大歓迎です!
ありがとう!