01: package com.opensymphony.sitemesh.webapp.decorator;
02:
03: import com.opensymphony.sitemesh.Content;
04: import com.opensymphony.sitemesh.webapp.SiteMeshWebAppContext;
05:
06: import javax.servlet.ServletContext;
07: import javax.servlet.ServletException;
08: import javax.servlet.http.HttpServletRequest;
09: import javax.servlet.http.HttpServletResponse;
10: import java.io.IOException;
11: import java.io.PrintWriter;
12:
13: /**
14: * If no decorator is to be applied to a page, this will ensure the original content gets written out.
15: *
16: * @author Joe Walnes
17: * @since SiteMesh 3.0
18: */
19: public class NoDecorator extends BaseWebAppDecorator {
20:
21: protected void render(Content content, HttpServletRequest request,
22: HttpServletResponse response,
23: ServletContext servletContext,
24: SiteMeshWebAppContext webAppContext) throws IOException,
25: ServletException {
26:
27: response.setContentLength(content.originalLength());
28:
29: if (webAppContext.isUsingStream()) {
30: PrintWriter writer = new PrintWriter(response
31: .getOutputStream());
32: content.writeOriginal(writer);
33: writer.flush(); //flush writer to underlying outputStream
34: response.getOutputStream().flush();
35: } else {
36: PrintWriter writer = response.getWriter();
37: content.writeOriginal(writer);
38: response.getWriter().flush();
39: }
40: }
41:
42: }
|