KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > info > magnolia > module > templating > renderers > JspTemplateRenderer


1 /**
2  *
3  * Magnolia and its source-code is licensed under the LGPL.
4  * You may copy, adapt, and redistribute this file for commercial or non-commercial use.
5  * When copying, adapting, or redistributing this document in keeping with the guidelines above,
6  * you are required to provide proper attribution to obinary.
7  * If you reproduce or distribute the document without making any substantive modifications to its content,
8  * please use the following attribution line:
9  *
10  * Copyright 1993-2006 obinary Ltd. (http://www.obinary.com) All rights reserved.
11  *
12  */

13 package info.magnolia.module.templating.renderers;
14
15 import info.magnolia.cms.beans.config.Template;
16 import info.magnolia.cms.beans.runtime.TemplateRenderer;
17
18 import java.io.IOException JavaDoc;
19 import java.text.MessageFormat JavaDoc;
20
21 import javax.servlet.RequestDispatcher JavaDoc;
22 import javax.servlet.ServletException JavaDoc;
23 import javax.servlet.http.HttpServletRequest JavaDoc;
24 import javax.servlet.http.HttpServletResponse JavaDoc;
25
26 import org.slf4j.Logger;
27 import org.slf4j.LoggerFactory;
28
29
30 /**
31  * <p>
32  * Simple jsp template renderer, mapped to template type <code>jsp</code>. The only valid attribute jsp templates is
33  * <code>path</code>, which specify the jsp/servlet path to forward to.
34  * </p>
35  * @author Fabrizio Giustina
36  * @version $Revision: 6341 $ ($Author: philipp $)
37  */

38 public class JspTemplateRenderer implements TemplateRenderer {
39
40     /**
41      * Logger.
42      */

43     private static Logger log = LoggerFactory.getLogger(JspTemplateRenderer.class);
44
45     /**
46      * @throws IOException
47      * @throws ServletException
48      * @see info.magnolia.cms.beans.runtime.TemplateRenderer#renderTemplate(javax.servlet.http.HttpServletRequest,
49      * javax.servlet.http.HttpServletResponse)
50      */

51     public void renderTemplate(Template template, HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response)
52         throws IOException JavaDoc, ServletException JavaDoc {
53
54         String JavaDoc requestReceiver = template.getPath();
55
56         if (requestReceiver == null) {
57             log.error("requestReceiver is missing, returning a 404 error"); //$NON-NLS-1$
58
response.sendError(404);
59             return;
60         }
61
62         if (log.isDebugEnabled()) {
63             log.debug(MessageFormat.format("Dispatching request for [{0}] - forward to [{1}]", //$NON-NLS-1$
64
new Object JavaDoc[]{request.getRequestURL(), requestReceiver}));
65         }
66
67         if (response.isCommitted()) {
68             log.error(MessageFormat.format("Can''t forward to [{0}] for request [{1}]. Response is already committed.", //$NON-NLS-1$
69
new Object JavaDoc[]{requestReceiver, request.getRequestURL()}));
70             return;
71         }
72
73         RequestDispatcher JavaDoc rd = request.getRequestDispatcher(requestReceiver);
74         rd.forward(request, response);
75         rd = null;
76     }
77
78 }
79
Popular Tags