KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > jaspersoft > jasperserver > war > tags > ViewReportTag


1 /*
2  * Copyright (C) 2006 JasperSoft http://www.jaspersoft.com
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed WITHOUT ANY WARRANTY; and without the
10  * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11  * See the GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program; if not, see http://www.gnu.org/licenses/gpl.txt
15  * or write to:
16  *
17  * Free Software Foundation, Inc.,
18  * 59 Temple Place - Suite 330,
19  * Boston, MA USA 02111-1307
20  */

21 package com.jaspersoft.jasperserver.war.tags;
22
23
24 import java.util.HashMap JavaDoc;
25
26 import javax.servlet.ServletContext JavaDoc;
27 import javax.servlet.jsp.JspException JavaDoc;
28 import javax.servlet.jsp.tagext.Tag JavaDoc;
29 import javax.servlet.jsp.tagext.TagSupport JavaDoc;
30
31 import net.sf.jasperreports.engine.JasperPrint;
32 import net.sf.jasperreports.j2ee.servlets.BaseHttpServlet;
33
34 import org.apache.commons.logging.Log;
35 import org.apache.commons.logging.LogFactory;
36 import org.springframework.web.context.WebApplicationContext;
37 import org.springframework.web.context.support.WebApplicationContextUtils;
38
39 import com.jaspersoft.jasperserver.api.common.domain.impl.ExecutionContextImpl;
40 import com.jaspersoft.jasperserver.api.engine.common.service.EngineService;
41 import com.jaspersoft.jasperserver.api.engine.jasperreports.domain.impl.ReportUnitRequest;
42 import com.jaspersoft.jasperserver.api.engine.jasperreports.domain.impl.ReportUnitResult;
43
44
45 /**
46  * @author aztec
47  * @version $Id: JasperViewerTag.java 2098 2006-02-12 17:49:07Z swood $
48  */

49 public class ViewReportTag extends TagSupport JavaDoc {
50
51     private static final Log log = LogFactory.getLog(ViewReportTag.class);
52     
53     private String JavaDoc reportName;
54     
55     /*
56      * @see javax.servlet.jsp.tagext.Tag#doStartTag()
57      */

58     public int doStartTag() throws JspException JavaDoc {
59         if (getReportName() == null) {
60             return Tag.SKIP_BODY;
61         }
62         
63         try {
64             ServletContext JavaDoc servletContext = pageContext.getServletContext();
65             
66             WebApplicationContext wac = WebApplicationContextUtils.
67                                             getRequiredWebApplicationContext(servletContext);
68             
69             EngineService engine = (EngineService) wac.getBean("engineService");
70
71             ReportUnitResult result =
72                     (ReportUnitResult)engine.execute(
73                         new ExecutionContextImpl(),
74                         new ReportUnitRequest(getReportName(), new HashMap JavaDoc())
75                         );
76
77             JasperPrint jasperPrint = result.getJasperPrint();
78             pageContext.getSession().setAttribute(BaseHttpServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE, jasperPrint);
79         } catch (Exception JavaDoc _exc) {
80             if (log.isErrorEnabled())
81                 log.error(_exc, _exc);
82             throw new JspException JavaDoc(_exc);
83         }
84         return Tag.SKIP_BODY;
85     }
86
87     /*
88      * (non-Javadoc)
89      * @see javax.servlet.jsp.tagext.Tag#doEndTag()
90      */

91     public int doEndTag() {
92         return Tag.EVAL_PAGE;
93     }
94
95     public String JavaDoc getReportName() {
96         return reportName;
97     }
98
99     public void setReportName(String JavaDoc reportName) {
100         this.reportName = reportName;
101     }
102
103 }
104
Popular Tags