/* * Copyright 2004-2006 the Seasar Foundation and the Others. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language * governing permissions and limitations under the License. */ package examples.jsf.action.impl; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.FileInputStream; import java.io.InputStream; import java.io.OutputStream; import javax.servlet.http.HttpServletResponse; import examples.jsf.action.AddAction; import examples.jsf.dto.AddDto; import examples.jsf.logic.AddLogic; public class AddActionImpl implements AddAction { private AddDto addDto; private AddLogic addLogic; //response private HttpServletResponse response = null; public void setAddDto(AddDto addDto) { this.addDto = addDto; } public void setAddLogic(AddLogic addLogic) { this.addLogic = addLogic; } public String calculate() { int result = addLogic.calculate(addDto); addDto.setResult(result); return null; } public String download() { OutputStream outputStream = null; try { response.setContentType("application/octet-stream;charset=Windows-31J"); response.setHeader("Content-Disposition","attachment;filename=\"test.xls\""); outputStream = new BufferedOutputStream(response.getOutputStream()); InputStream inputStream = new BufferedInputStream(new FileInputStream("c:/test.xls")); int byteData = 0; while((byteData = inputStream.read()) != -1) { outputStream.write(byteData); } inputStream.close(); outputStream.flush(); outputStream.close(); //if(!aIsContinue) { //facesContext.responseComplete(); //} } catch(Exception e) { e.printStackTrace(); } finally { if(outputStream != null) { outputStream = null; } } return null; } /** * response * @param aResponse response */ public void setResponse(HttpServletResponse aResponse) { response = aResponse; } }