JSF chamar servlet

2 respostas
M

"

2 Respostas

idev4web

Eu não acho que seja bizarrice não.
Eu ando meio decepcionado com alguns frameworks e pacotes de interfaces pesadas por ai.

Mas respondendo sua pergunta voce pode fazer o seguinte:

vou colocar um exemplo meu que chama o servlet ReportAnuncioTotalServlet

package br.senai.cni.bolsa.report;

import java.util.List;

import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.jsf.FacesContextUtils;

import br.senai.cni.bolsa.dao.LoadListDAO;
import br.senai.cni.bolsa.entity.Portal;

public class ReportAnuncioTotal {
	
	private long idPortal;
	private int ano;
	private List<Portal> federacoes;
	private LoadListDAO loadListDAO;
	
	public ReportAnuncioTotal() {
		loadListDAO = (LoadListDAO) FacesContextUtils.getWebApplicationContext(
				FacesContext.getCurrentInstance()).getBean("loadListDAO");
	}

	public long getIdPortal() {
		return idPortal;
	}
	
	public void setIdPortal(long idPortal) {
		this.idPortal = idPortal;
	}
	
	public int getAno() {
		return ano;
	}
	
	public void setAno(int ano) {
		this.ano = ano;
	}
	
	public List<Portal> getFederacoes() {
		federacoes = loadListDAO.loadListPortal(); // usa o bean loadList
		return federacoes;
	}

	public void setFederacoes(List<Portal> federacoes) {
		this.federacoes = federacoes;
	}
	
	public void reportCreate(ActionEvent ae){
	    
		String url = "/ReportAnuncioTotalServlet";
	    FacesContext context = FacesContext.getCurrentInstance();
	    try {
			ServletContext sc = (ServletContext) context.getExternalContext().getContext();
			RequestDispatcher rd = sc.getRequestDispatcher(url);
			
			HttpServletRequest request = (HttpServletRequest)context.getExternalContext().getRequest();
			HttpServletResponse response=(HttpServletResponse)context.getExternalContext().getResponse();
			
			//parametros para geraçao do relatorio
			request.setAttribute("idPortal", idPortal+"");
			request.setAttribute("ano", ano+"");
			
			rd.forward(request, response);
			
	    }catch (Exception e) {
	       e.printStackTrace();
	    }
	    finally{
	       context.responseComplete();
	    }
		
	}
}
idev4web

msg duplicada

Criado 12 de maio de 2009
Ultima resposta 12 de mai. de 2009
Respostas 2
Participantes 2