Relatorio jsp

Galera

Alguem pode me mostrar como gerar um relatorio pela web (jsp)

eu ja tenho ele desenhado,
eu queria o seguinte, eu tenho uma lista com N resultados, que vem do banco,

eu quero joga essa lista pro parametro do metodo, pra gerar o relatorio…

eu fazia isso muito em jsf, trazia uma lista com os valores, e passava pra parametro pro metodo, ai gerava,
mais eu não to conseguindo fazer isso em jsp…

Esse é o codigo que eu uso para JSF, eu passo uma lista como parametro…
mas pra jsp isso nao funciona, tem muito tempo q nao mecho com jsp puro,
acho que tem que ser doPost… não sei…
é isso


public void generateReport()throws ClassNotFoundException, IOException, JRException {
		
		FacesContext context = FacesContext.getCurrentInstance();
		
		HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
		
		InputStream reportStream = context.getExternalContext().getResourceAsStream("/jasper/anac.jasper");
		
		ServletOutputStream servletOutputStream = response.getOutputStream();
		
		try {
			
			
			JRDataSource novo = new JRBeanCollectionDataSource(lista);  //lista com os valores
	
			JasperRunManager.runReportToPdfStream(reportStream,servletOutputStream, new HashMap(), novo);
			
		} catch (PersistenceException e) {
			e.printStackTrace();
		}
		
		response.setContentType("application/pdf"); 
		
		context.responseComplete();
		
		servletOutputStream.flush();
		
		servletOutputStream.close();
				
	}

help
vlw

uai…
o relatório parece que tá pronto…

eu tou um bom tempo sem mexer com páginas… rs**
Mas,
vc pode chamar o seu método diretamente…

[code]<%@ page contentType=“text/html; charset=iso-8859-1” language=“java”%>
<%@ taglib uri=“http://java.sun.com/jsf/html” prefix=“h”%>
<%@ taglib uri=“http://java.sun.com/jsf/core” prefix=“f”%>
<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c”%>

<f:view>
<c:set var=“rep” value="${rep.generateReport}"/>
<c:if test=’${repeq “success”}’>
</f:view>[/code]

Essa ai é uma forma… JSTL…
É a única que me lembro… mas, como disse tou meio enferrujado…

OO fera. segue ae um exemplo com o Ireport. ñ sei se é isso que vc precisa mas talvez pode ajudar… falou . se quiser tenho o modelo completo de como fazer


package relatorio;

import java.util.HashMap;
import java.util.List;

import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;

import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.JasperRunManager;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import persistencia.Despejo;
import util.JSFUtil;

public class DespejoRelatorio {
	// Dados do relatório
	private List<Despejo> dados;

	// Métodos getters
	public List<Despejo> getDados() {
		return dados;
	}

	// Métodos setters
	public void setDados(List<Despejo> dados) {
		this.dados = dados;
	}

	// Método que gera os relatórios
	@SuppressWarnings("unchecked")
	public void gerarRelatorio() throws Exception {
		// Caminho do aplicativo
		String path = JSFUtil.getRealPath();

		// Caminho do arquivo .jrxml
		path += "\\WEB-INF\\classes\\relatorio\\nomedoSeuRelatorioDoIreport.jrxml";

		// Relatório
		JasperReport report = JasperCompileManager.compileReport(path);

		// Parâmetros
		HashMap parametros = new HashMap();

		// Dados do relatório
		JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(dados);

		// Conversão do relatório para bytes
		byte[] bytes = JasperRunManager.runReportToPdf(report, parametros, ds);

		// Captura a resposta
		HttpServletResponse resp = JSFUtil.getResponde();

		// Configura os parâmetros para envio do arquivo

		// Tipo do arquivo
		resp.setContentType("Application/pdf");

		// Configuração do anexo
		resp.setHeader("Content-disposition",
				"attachment;filename=despejo.pdf");

		// Tamanho do arquivo
		resp.setContentLength(bytes.length);

		// Gravaçao dos bytes na resposta
		ServletOutputStream saida = resp.getOutputStream();
		saida.write(bytes, 0, bytes.length);

		// Efetua a transferência do arquivo
		JSFUtil.responseComplete();
	}
}