You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ca...@apache.org on 2007/05/18 15:54:13 UTC

svn commit: r539471 - /myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/excelexport/ExcelExportPhaseListener.java

Author: cagatay
Date: Fri May 18 06:54:13 2007
New Revision: 539471

URL: http://svn.apache.org/viewvc?view=rev&rev=539471
Log:
Fixed TOMAHAWK-979, ensure the showing of open/save file dialog, thanks to Emil Cazacu for the patch

Modified:
    myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/excelexport/ExcelExportPhaseListener.java

Modified: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/excelexport/ExcelExportPhaseListener.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/excelexport/ExcelExportPhaseListener.java?view=diff&rev=539471&r1=539470&r2=539471
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/excelexport/ExcelExportPhaseListener.java (original)
+++ myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/excelexport/ExcelExportPhaseListener.java Fri May 18 06:54:13 2007
@@ -58,9 +58,9 @@
 			try {
 				Object contextResponse = facesContext.getExternalContext().getResponse();
 				if(contextResponse instanceof HttpServletResponse)
-					writeExcelOutput(generatedExcel,(HttpServletResponse)contextResponse);
+					writeExcelOutput(generatedExcel,(HttpServletResponse)contextResponse, tableId);
 				else if(contextResponse instanceof RenderResponse)
-					writeExcelOutput(generatedExcel,(RenderResponse)contextResponse);
+					writeExcelOutput(generatedExcel,(RenderResponse)contextResponse, tableId);
 				
 				facesContext.getApplication().getStateManager().saveSerializedView(facesContext);
 				facesContext.responseComplete();
@@ -78,13 +78,23 @@
 		return PhaseId.RESTORE_VIEW;
 	}
 	
-	private void writeExcelOutput(HSSFWorkbook workBook, HttpServletResponse response) throws IOException{
+	private void writeExcelOutput(HSSFWorkbook workBook, HttpServletResponse response, String tableId) throws IOException{
 		response.setContentType("application/vnd.ms-excel");
+		response.setHeader("Expires", "0");
+	    response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
+	    response.setHeader("Pragma", "public");
+	    response.setHeader("Content-disposition", "attachment;filename=" + tableId + ".xls");
+
 		workBook.write(response.getOutputStream());
 	}
 	
-	private void writeExcelOutput(HSSFWorkbook workBook, RenderResponse response) throws IOException{
+	private void writeExcelOutput(HSSFWorkbook workBook, RenderResponse response, String tableId) throws IOException{
 		response.setContentType("application/vnd.ms-excel");
+		response.setProperty(RenderResponse.EXPIRATION_CACHE, "0");
+	    response.setProperty("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
+	    response.setProperty("Pragma", "public");
+	    response.setProperty("Content-disposition", "attachment;filename=" + tableId + ".xls");
+		
 		workBook.write(response.getPortletOutputStream());
 	}
 	
@@ -140,5 +150,4 @@
 			}
 		}
 	}
-
-}
+}
\ No newline at end of file