List of usage examples for javax.servlet.jsp.tagext BodyContent writeOut
public abstract void writeOut(Writer out) throws IOException;
From source file:com.jaspersoft.jasperserver.war.tags.BaseTagSupport.java
protected void includeNested(String path) throws JspException { BodyContent nestedContent = pageContext.pushBody(); boolean popped = false; try {//w w w . j a va2 s . c om pageContext.include(path); popped = true; pageContext.popBody(); nestedContent.writeOut(pageContext.getOut()); } catch (ServletException e) { log.error(e, e); throw new JspException(e); } catch (IOException e) { log.error(e, e); throw new JspException(e); } finally { if (!popped) { pageContext.popBody(); } } }
From source file:org.shredzone.cilla.web.tag.LinkTag.java
@Override public int doEndTag() throws JspException { String url = null;//w w w . j av a2 s . co m String useTitle = null; lb.view(view); lb.author(author); lb.category(category); lb.page(page); lb.section(section); lb.picture(picture); lb.tag(tag); lb.header(header); lb.ref(ref); lb.qualifier(qualifier); lb.commentable(commentable); if (title != null) { useTitle = title; } else if (page != null) { useTitle = page.getTitle(); } else if (category != null) { useTitle = category.getTitle(); } else if (header != null) { useTitle = header.getCaption(); } if (anchor != null) { lb.anchor(anchor); } url = lb.toString(); if (url == null) { throw new JspException("Cannot link to view '" + view + "'"); } if (var != null) { TagUtils.setScopedAttribute(pageContext, var, url, scope); return EVAL_PAGE; } HttpServletResponse response = (HttpServletResponse) pageContext.getResponse(); StringBuilder linktag = new StringBuilder(); linktag.append("<a href=\""); linktag.append(HtmlUtils.htmlEscape(response.encodeURL(url))); linktag.append('"'); if (id != null) { linktag.append(" id=\"").append(HtmlUtils.htmlEscape(id)).append('"'); } if (onclick != null) { linktag.append(" onclick=\"").append(HtmlUtils.htmlEscape(onclick)).append('"'); } if (styleClass != null) { linktag.append(" class=\"").append(HtmlUtils.htmlEscape(styleClass)).append('"'); } if (style != null) { linktag.append(" style=\"").append(HtmlUtils.htmlEscape(style)).append('"'); } if (useTitle != null) { linktag.append(" title=\"").append(HtmlUtils.htmlEscape(useTitle)).append('"'); } linktag.append('>'); try { pageContext.getOut().print(linktag.toString()); BodyContent bc = getBodyContent(); if (bc != null) { bc.writeOut(pageContext.getOut()); } pageContext.getOut().print("</a>"); } catch (IOException ex) { throw new JspException(ex); } return EVAL_PAGE; }
From source file:de.laures.cewolf.taglib.tags.ChartImgTag.java
public int doAfterBody() throws JspException { try {//from w w w.j a va2 s .co m // double checking for null as Resin had problems with that final BodyContent body = getBodyContent(); if (body != null) { final JspWriter writer = getPreviousOut(); if (writer != null) { body.writeOut(writer); } } } catch (IOException ioex) { System.err.println("ChartImgTag.doAfterBody: " + ioex.getMessage()); throw new JspException(ioex.getMessage()); } return SKIP_BODY; }
From source file:com.jaspersoft.jasperserver.war.tags.JasperViewerTag.java
public int doEndTag() throws JspException { HttpServletRequest request = (HttpServletRequest) pageContext.getRequest(); HttpServletResponse response = (HttpServletResponse) pageContext.getResponse(); try {//from w ww. j a va 2 s .c o m ReportUnitResult reportResult = getReportResult(request); JasperPrintAccessor printAccessor = reportResult.getJasperPrintAccessor(); if (printAccessor == null) { log.error("There is no JasperPrint object cannot be accessed."); return EVAL_PAGE; } setReportContextAttributes(request, reportResult); Integer pageIndex = (Integer) request.getAttribute(getPageIndexAttribute()); if (pageIndex == null) { pageIndex = new Integer(0); } ReportExecutionStatus reportStatus = printAccessor.getReportStatus(); // get the status of the page, waiting for the page to be available in necessary ReportPageStatus pageStatus = printAccessor.pageStatus(pageIndex.intValue(), null); request.setAttribute("page", page); request.setAttribute("dataTimestamp", reportResult.getDataTimestamp()); request.setAttribute(INNER_PAGINATION_ATTRIBUTE, innerPagination); request.setAttribute(IGNORE_PAGE_MARGINS, ignorePageMargins); Integer totalPageCount = reportStatus.getTotalPageCount(); // set the total page count if known if (totalPageCount != null) { request.setAttribute("lastPageIndex", new Integer(totalPageCount - 1)); //FIXME this duplicates logic in ReportExecutionController.viewReportPageUpdateCheck SnapshotSaveStatus snapshotSaveStatus = getDataCacheProvider() .getSnapshotSaveStatus(reportResult.getReportContext()); if (snapshotSaveStatus != null) { request.setAttribute("snapshotSaveStatus", snapshotSaveStatus.toString()); } } // set the partial page count request.setAttribute("lastPartialPageIndex", new Integer(reportStatus.getCurrentPageCount() - 1)); // if the page count is null, it means that the fill is not yet done but there is at least a page boolean emptyReport = totalPageCount != null && totalPageCount.intValue() == 0; request.setAttribute(EMPTY_REPORT_ATTRIBUTE, Boolean.valueOf(emptyReport)); ApplicationContext applicationContext = getRequestContext().getWebApplicationContext(); request.setAttribute(MESSAGE_SOURCE, applicationContext.getBean("messageSource")); if (!emptyReport) { if (!pageStatus.pageExists()) { // setting a header as there's no simple way currently to detect a specific exception in the client response.setHeader("reportPageNonExisting", "true"); throw new JSException("jsexception.view.page.does.not.exist", new Object[] { pageIndex }); } request.setAttribute("pageIndex", pageIndex); if (!pageStatus.isPageFinal()) { request.setAttribute("pageTimestamp", pageStatus.getTimestamp()); } JasperReportsContext jasperReportsContext = getJasperReportsContext(applicationContext); AbstractHtmlExporter exporter = HtmlExportUtil.getHtmlExporter(jasperReportsContext); exporter.setParameter(JRExporterParameter.JASPER_PRINT, printAccessor.getJasperPrint()); exporter.setParameter(JRExporterParameter.PAGE_INDEX, pageIndex); exporter.setImageHandler( new WebHtmlResourceHandler(response.encodeURL(imageServlet + "image={0}"))); exporter.setResourceHandler( new WebHtmlResourceHandler(response.encodeURL(resourceServlet + "/{0}"))); exporter.setFontHandler( new WebHtmlResourceHandler(response.encodeURL(resourceServlet + "&font={0}"))); StringBuffer htmlHeader = new StringBuffer(); String contextPath = request.getContextPath(); // fix for Bug 26294 - [case #24473 +1] Problem with IE8 and IE9 when embedding app into iframe String referer = request.getHeader("Referer"); referer = referer.substring(0, referer.indexOf(contextPath) + contextPath.length()); // end fix exporter.setParameter(JRHtmlExporterParameter.HTML_HEADER, htmlHeader.toString()); exporter.setParameter(JRHtmlExporterParameter.HTML_FOOTER, ""); exporter.setParameter(JRHtmlExportUtils.PARAMETER_HTTP_REQUEST, request); exporter.setParameter(JRExporterParameter.IGNORE_PAGE_MARGINS, ignorePageMargins); WebflowReportContext webflowReportContext = getReportContextAccessor().getContext(request, reportContextMap); webflowReportContext.setParameterValue("net.sf.jasperreports.web.app.context.path", contextPath);//FIXMEJIVE use constant // webflowReportContext.setParameterValue(JRParameter.REPORT_CONTEXT, webflowReportContext); exporter.setReportContext(webflowReportContext); // hide the preview toolbar if view as dashboard frame if ((webflowReportContext.getParameterValue(ReportParametersAction.VIEW_AS_DASHBOARD_FRAME) != null) && webflowReportContext.getParameterValue(ReportParametersAction.VIEW_AS_DASHBOARD_FRAME) .toString().equalsIgnoreCase("true")) { request.setAttribute(ReportParametersAction.VIEW_AS_DASHBOARD_FRAME, "true"); } HyperlinkProducerFactoryFlowFactory linkProducerFactory = (HyperlinkProducerFactoryFlowFactory) request .getAttribute(getLinkProducerFactoryAttribute()); if (linkProducerFactory != null) { JRHyperlinkProducerFactory hyperlinkProducerFactory = linkProducerFactory .getHyperlinkProducerFactory(request, response); exporter.setParameter(JRExporterParameter.HYPERLINK_PRODUCER_FACTORY, hyperlinkProducerFactory); } /* * Future enhancement * * JRExporter exporter = (providedExporterClassName != null) ? defaultExporter(jasperPrint, pageIndex) : providedExporter(jasperPrint, pageIndex); setParameters(exporter); */ request.setAttribute("exporter", exporter); boolean isComponentMetadataEmbedded = WebUtil.getInstance(jasperReportsContext) .isComponentMetadataEmbedded(); request.setAttribute("isComponentMetadataEmbedded", isComponentMetadataEmbedded); if (isComponentMetadataEmbedded) { JsonExporter jsonExporter = new JsonExporter(jasperReportsContext); jsonExporter.setReportContext(webflowReportContext); jsonExporter.setParameter(JRExporterParameter.JASPER_PRINT, printAccessor.getJasperPrint()); request.setAttribute("jsonExporter", jsonExporter); } // set report status on response header LinkedHashMap<String, Object> result = new LinkedHashMap<String, Object>(); result.put("reportStatus", reportStatus.getStatus().toString().toLowerCase()); result.put("totalPages", reportStatus.getTotalPageCount()); result.put("partialPageCount", reportStatus.getCurrentPageCount()); result.put("pageFinal", pageStatus.isPageFinal()); result.put("contextid", webflowReportContext.getId()); result.put("isComponentMetadataEmbedded", isComponentMetadataEmbedded); result.put("jasperPrintName", request.getAttribute("jasperPrintName")); if (!pageStatus.isPageFinal()) { result.put("pageTimestamp", String.valueOf(pageStatus.getTimestamp())); } String defaultZoomProperty = printAccessor.getJasperPrint() .getProperty("net.sf.jasperreports.viewer.zoom"); // FIXME: use constant if (defaultZoomProperty != null) { ZoomTypeEnum zoomType = ZoomTypeEnum.getByName(defaultZoomProperty); result.put("defaultZoom", zoomType != null ? zoomType.getHtmlValue() : defaultZoomProperty); } response.setHeader("jasperreports-report-status", JacksonUtil.getInstance(jasperReportsContext).getJsonString(result)); } BodyContent nestedContent = pageContext.pushBody(); boolean popped = false; try { pageContext.include(getRenderJsp()); popped = true; pageContext.popBody(); nestedContent.writeOut(pageContext.getOut()); } finally { if (!popped) { pageContext.popBody(); } } } catch (Exception e) { if (e instanceof SessionAttribMissingException) { throw new SessionAttribMissingException(e.getMessage(), ((SessionAttribMissingException) e).getArgs()); } else { throw new JspException(e); } } return EVAL_PAGE; }