[RESOLVIDO] - Problema no <h:inputHidden>

Bom dia pessoal, estou com uma pequena dúvida porém não consegui resolvê-la.

O negócio é o seguinte, tenho um Bean que vai receber os valores para a formação do meu relatorio…

public class RelatorioBean {

	private Calendar dataInicial = Calendar.getInstance();
	private Calendar dataFinal = Calendar.getInstance();
	private String loja;
	private String caminho;
	HashMap<String, Object> parameters = new HashMap<String, Object>();

	public void geraPdf() throws FileNotFoundException, ParseException,
			JRException {

		parameters.put("DATA_INI", dataInicial.getTime());
		parameters.put("DATA_FIM", dataFinal.getTime());
		parameters.put("LOJA", loja);

		new GeraRelatorio(parameters, caminho).geraPdf();
	}
//getters e setters
}

aki eu passo os parametros do meu relatorio e o caminho que vai ser o nomeDoRelatorio.jasper

no meu form eu precisava colocar em um <h:inputHidden> o valor do meu relatorio, mais não estou conseguindo.
Aki meu form:

	<h:form>
			<!-- aqui eu preciso colocar o nome do relatorio para alimentar o atributo caminho. Ex.: nomeDoRelatorio.jasper -->
			<h:inputHidden  value="#{relatorioBean.caminho}" />
			
			<p:panelGrid columns="2">
				
				<p:outputLabel value="Loja" />
				<p:selectOneMenu value="#{relatorioBean.loja}">
					<f:selectItem itemLabel="01" itemValue="01" />
					<f:selectItem itemLabel="02" itemValue="02" />
					<f:selectItem itemLabel="03" itemValue="02" />
				</p:selectOneMenu>
				<p:outputLabel value="Data Inicial" for="dataIni" />
				<p:calendar id="dataIni" pattern="dd/MM/yyyy" timeZone="America/Sao_Paulo" value="#{relatorioBean.dataInicial.time}" />
				<p:outputLabel value="Data Inicial" for="dataFim" />
				<p:calendar id="dataFim" pattern="dd/MM/yyyy" timeZone="America/Sao_Paulo" value="#{relatorioBean.dataFinal.time}" />
				<h:commandLink value="Visualizar" target="_blank" actionListener="#{relatorioBean.geraPdf}" />
			</p:panelGrid>
		</h:form>

Alguém poderia me mostrar onde eu coloco o valor que eu preciso no inputHidden??

Desde já agradeço a colaboração,
Abraço.

bom dia, qual o escopo do seu bean? se for o default(request) não deve funcionar. tenta colocar um @SessionScope e ve se funciona.

Bom dia ssh,

então Dr eu mudei para @SessionScope e não mudou muita coisa, eu precisava de alguma coisa assim:

ao invés de:

o q vc sugere???

Obrigado pela atenção…

Bom dia,

uma alternativa seria você ter um bean especifico para o teu relatório. Aí não precisaria usar o h:inputHidden e definir estes dados no xhtml (view)

Por exemplo, você teria um MeuRelatorioBean (que serviria de controller) e nele você define a chamada para a tua classe de relatórios (jasper, parametros, etc)

Não sei se consegui me explicar, mas espero que ajude.

sds.

Bom dia cgraf,

entedi sim, dessa forma daria certo tbm, mais acontece que é uma aplicação que já existe e tem uma quantidade enorme de relatórios, então queria ter o trabalho de informar o caminho do relatório somente na minha view, dessa forma eu não precisaria ficar criando um bean para cada relatório.

Você acha que eu não vou ter outra saída, a não ser criar os Beans??

Obrigado pela atenção, Abraço…

Bom, a única idéia que me ocorre seria você setar o valor do h:inputhidden com javascript (poderia usar jquery)

Não sei se teria outra alternativa. Por isso particularmente prefiro ter um controller (MB) para cada relatório.

sds

O mesmo bean imprime varios relatorio?
tenta usar

<h:form target="_blank">
//codigo aki
<h:commandButton action="#{relatorioBean.geraPdf}" value="Submit">
    <f:setPropertyActionListener target="#{relatorioBean.caminho}" value="caminho" />
</h:commandButton>
</h:form>

Blz cgraf, se de tudo não conseguir vou tentar utilizando o jquery.

Obrigado!!!

jhoamaral,

vou tentar depois do almoço e aviso aqui no post se deu ou se tenho alguma dúvida para vc me ajudar
mais acho que vai dá certo…

Obrigado Dr.

Boa tarde jhoamaral,

Era justamente isso que eu precisava, deu certo!!!

Obrigado!!!