Carregar dados em uma tela com view scoped

15/02/2012

0

Boa Tarde.
Estou fazendo um cadastro de nota fiscal, para fazer esse cadastro utilizei o componente p:wizard do primefaces.
O escopo dessa tela de cadastro é @ViewScoped, e para efetuar o cadastro está funcionando certinho.

Meu problema ocorre quando tenho que efetuar a alteração de uma nota a partir de uma tela de listagem.
Tenho um dataTable que lista as notas cadastradas, e um link para o método do bean, segue código abaixo.

<p:column styleClass=tdEditar>
	<f:facet name=header>
		<h:outputText value=Editar />
	</f:facet>
	<h:commandLink action=#{NotaFiscalCadastroBean.Editar} >
		<h:graphicImage url=../../comum/img/edit.png/>
		<f:setPropertyActionListener target=#{NotaFiscalCadastroBean.notaFiscal} value=#/>
	</h:commandLink>
</p:column>


Como faço para carregar os dados que o usuário escolheu no dataTable ?

obs.: Já mudei o scope para Request, mas dai o componente p:wizard não funciona corretamente pois perde os dados ao passar de aba, tambem tentei usar o session, e dai o problema que ocorre é que ao tentar cadastrar uma nova nota fiscal o sistema abre a nota fiscal que estava sendo editada..

att

Daniel Everling

Daniel Everling

Responder

Posts

17/02/2012

Davi Costa

Daniel eu sugiro que vc use request e descubra pq o componente p:wizard não funciona corretamente.

att Davi
Responder

17/02/2012

Daniel Everling

Obrigado Davi, consegui resolver da seguinte maneira


no xhtml fiz assim (passando parametros)

<h:commandLink action=notaFiscalCadastro >  
	<h:graphicImage url=../../comum/img/edit.png/>  
	<f:setPropertyActionListener target=#{NotaFiscalCadastroBean.notaFiscal} value=#/>  
	<f:param value=#{notaFiscal.numeroNota} name=numeroNota/>  
	<f:param value=#{notaFiscal.dataEmissao} name=dataEmissao/>  
	<f:param value=#{notaFiscal.fornecedor.pessoaID} name=fornecedor/>  
</h:commandLink> 


e no bean, capiturei os mesmos assim (usando a annotation @PostConstruct), digo que ele deve executar esse metodo assim que a pagina for carregada, e pego os parametros passado no xhtml



@PostConstruct  
public void Init(){
    String numeroNota           =   FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get(numeroNota);  
    String dataEmissaoTemp      =   FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get(dataEmissao);  
    String fornecedorTemp       =   FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get(fornecedor);  
}  


Obrigado
Responder

17/02/2012

Davi Costa

Show de Bola Daniel, muito boa sua iniciativa de postar sua solução. Assim que possível favor fechar o chamado

att Davi
Responder

20/02/2012

Dyego Carmo

Opa !

Resolvido o problema ?

Se sim, poderia fechar o chamado ?

Valeu !
Responder

APRENDA A PROGRAMAR DO ZERO AO PROFISSIONAL

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar