01: package com.opensymphony.module.sitemesh.multipass;
02:
03: import com.opensymphony.module.sitemesh.Page;
04: import com.opensymphony.module.sitemesh.PageParser;
05: import com.opensymphony.module.sitemesh.PageParserSelector;
06: import com.opensymphony.module.sitemesh.filter.PageFilter;
07: import com.opensymphony.module.sitemesh.filter.PageResponseWrapper;
08:
09: import javax.servlet.RequestDispatcher;
10: import javax.servlet.ServletException;
11: import javax.servlet.http.HttpServletRequest;
12: import javax.servlet.http.HttpServletResponse;
13: import java.io.IOException;
14:
15: public class MultipassFilter extends PageFilter {
16:
17: protected void writeDecorator(final HttpServletResponse response,
18: final Page page, RequestDispatcher dispatcher,
19: HttpServletRequest request) throws ServletException,
20: IOException {
21: PageResponseWrapper pageResponse = new PageResponseWrapper(
22: response, new PageParserSelector() {
23: public boolean shouldParsePage(String contentType) {
24: return true;
25: }
26:
27: public PageParser getPageParser(String contentType) {
28: return new MultipassReplacementPageParser(page,
29: response);
30: }
31: });
32: pageResponse.activateSiteMesh("text/html", "");
33: dispatcher.include(request, pageResponse);
34: pageResponse.getPage();
35: }
36:
37: }
|