Index: JasperReportsResult.java =================================================================== RCS file: /cvs/webwork/src/java/com/opensymphony/webwork/views/jasperreports/JasperReportsResult.java,v retrieving revision 1.5 diff -u -r1.5 JasperReportsResult.java --- JasperReportsResult.java 20 Oct 2004 11:43:23 -0000 1.5 +++ JasperReportsResult.java 28 Nov 2004 15:24:31 -0000 @@ -58,6 +58,8 @@ protected String IMAGES_DIR = "/images/"; private String dataSource; private String format; + private String documentName; + private String contentDisposition; //~ Methods //////////////////////////////////////////////////////////////// @@ -69,6 +71,14 @@ this.format = format; } + public void setDocumentName(String documentName) { + this.documentName = documentName; + } + + public void setContentDisposition(String contentDisposition) { + this.contentDisposition = contentDisposition; + } + protected void doExecute(String finalLocation, ActionInvocation invocation) throws Exception { if (this.format == null) { this.format = FORMAT_PDF; @@ -95,6 +105,12 @@ if (parse) { format = TextParseUtil.translateVariables(format, stack); dataSource = TextParseUtil.translateVariables(dataSource, stack); + + if( contentDisposition!=null ) + contentDisposition = TextParseUtil.translateVariables(contentDisposition, stack); + + if( documentName!=null ) + documentName = TextParseUtil.translateVariables(documentName, stack); } // (Map) ActionContext.getContext().getSession().get("IMAGES_MAP"); @@ -124,7 +140,21 @@ // Export the print object to the desired output format try { - if (format.equals(FORMAT_PDF)) { + if(contentDisposition!=null || documentName!=null) { + StringBuffer tmp=new StringBuffer(); + tmp.append((contentDisposition==null)?"inline":contentDisposition); + + if(documentName!=null) { + tmp.append("; filename="); + tmp.append(documentName); + tmp.append("."); + tmp.append(format.toLowerCase()); + } + + response.setHeader("Content-disposition", tmp.toString()); + } + + if (format.equals(FORMAT_PDF)) { response.setContentType("application/pdf"); // response.setHeader("Content-disposition", "inline; filename=report.pdf");