Relatorio Jasper com passagem de parametros

Pessoal boa tarde, estou tentando criar um relatório com o TIBCO JasperSoft e estou com dificuldade na passagem dos parâmetros.Obs.: quando eu gero sem o parâmetro o relatório e exibido corretamente.trecho da query dentro do relatório


<queryString>
<![CDATA[SELECT *
FROM safira.matriz
WHERE safira.matriz.id = $P{ID}]]>
</queryString>

Botão que chama o relatorio.


<p:commandButton value="Follow Up" action="#{mbMatriz.gerarRelatorio}" ajax="false" style="float:left" >
<f:setPropertyActionListener target="#{mbMatriz.matriz}"
value="#{linha}"></f:setPropertyActionListener>
</p:commandButton>

Método do relatório

public void gerarRelatorio(){
FacesContext fc=FacesContext.getCurrentInstance();HashMap parametros = new HashMap();
parametros.put("$P{ID}", matriz.getId());
System.out.println(" parametros="+parametros); 
try{
InputStream arquivo = 
fc.getExternalContext().
getResourceAsStream("/teste.jasper");new MatrizDao();byte pdf[]= JasperRunManager.runReportToPdf(arquivo, parametros, MatrizDao.getConnection());HttpServletResponse response=(HttpServletResponse) 
fc.getCurrentInstance().getExternalContext().getResponse();ServletOutputStream out = response.getOutputStream();
out.write(pdf); 
out.flush();
out.close();FacesContext.getCurrentInstance().responseComplete();}catch(Exception ex){
ex.printStackTrace();
}
}

O que está acontecendo ?

Pois a principio voce teria que :slight_smile:

1 - Criar os parametros no jasper studio.
2 - Passar os parametros para o relatório através do hasmap.
3 - Os nomes do parametros no hasmap e no relatório devem ser iguais.