我尝试解决以下问题:
我已经设置了自己的 viewResolver,为我的所有请求添加了页眉和页脚(感谢 stackoverflow ;p)。这工作正常。
问题是我的 ajax 请求,将视图返回到特定容器,也会自动获取页眉和页脚,这当然不是预期的。
如果请求包含“/ajax/”,如何让 viewResolver 采取不同的行动?实际上,jstl-Viewer 对他们来说工作得很好,但目前,我自己的解析器是唯一使用的解析器,因为我不知道如何告诉 spring 在 '/ajax/' 上采取不同的行动。
这是我自己的解析器,非常简单,只是取自这里:
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
}
我是否必须告诉这个解析器 if indexOf("/ajax/") != -1 jstView 需要被调用?如果是,如何?还是我做错了?我想保留我的页眉/页脚,因为它们适用于所有非 ajax 请求!
任何帮助表示赞赏!
谢谢!