Rendered

7 respostas
F

Bom dia pessoal!

Sou iniciante em Java. Procuro ler livros quando tenho tempo, mas no momento ta um pouco corrido, então ando aprendendo mais na prática e com exemplos.
Estou com uma duvida com rendered…

No caso eu to tentando fazer da seguinte maneira:
Na minha pagina inicial tenho um menu, nele eu coloquei:

<p:menuitem value="Novo" action="#{clienteBean.mostrarTelaNovoCliente}" icon="ui-icon-document" />

Ai no bean ta assim:

public String mostrarTelaNovoCliente(){ telaNovoCliente = true; return "/vendas/Cliente.jsf"; }

E no /vendas/Cliente.jsf ta assim:

<p:panel header="Cliente" rendered="#{clienteBean.telaNovoCliente}">

Eu já imaginei que não ia mostrar esse panel, por que quando eu dou o return, ele carrega a pagina novamente perdendo a informação que eu setei, que no caso é (telaNovoCliente = true)…

Eu precisava saber qual é a forma correta de fazer o que eu to precisando…

Pensei em fazer as variaveis dessa forma, pois no Cliente.jsf terei nas paginas: Novo Cliente, Alterar Cliente, Confirmacao Novo Cliente, e Confirmacao Alterar Cliente…

Creio que seja um coisa simples que eu não estou conseguindo enxergar, ou que não sei mesmo…

Obrigado desde já!
Abraço!

EDIT: [ code ] adicionados.

7 Respostas

Rodrigo_Sasaki

Se for inserir código, o coloque entre as tags [ code][/code].

o atributo rendered recebe um boolean que diz se o componente será renderizado.

Se você setar true o componente será renderizado.
Se você setar false não será.

F

Rodrigo Sasaki:
Se for inserir código, o coloque entre as tags [ code][/code].

o atributo rendered recebe um boolean que diz se o componente será renderizado.

Se você setar true o componente será renderizado.
Se você setar false não será.


Perdão, fiz o post correndo e esqueci…
Então, isso eu sei… O problema é que não sei como fazer a página enxergar esse TRUE que estou colocando ali no método… Pensei em sessão, mas cheguei a pensar que a sessão seria inadequado…

Dicas e opiniões bem vindas!

Rodrigo_Sasaki

faelzindc:
Perdão, fiz o post correndo e esqueci…
Então, isso eu sei… O problema é que não sei como fazer a página enxergar esse TRUE que estou colocando ali no método… Pensei em sessão, mas cheguei a pensar que a sessão seria inadequado…

Dicas e opiniões bem vindas!

Ué, e por que não estaria enxergando? Se você setou ali vai funcionar, só que o valor default de rendered é true, então setar pra true novamente não adianta nada. Você poderia testar setando false, e ver o que acontece.

F

Rodrigo Sasaki:
faelzindc:
Perdão, fiz o post correndo e esqueci…
Então, isso eu sei… O problema é que não sei como fazer a página enxergar esse TRUE que estou colocando ali no método… Pensei em sessão, mas cheguei a pensar que a sessão seria inadequado…

Dicas e opiniões bem vindas!

Ué, e por que não estaria enxergando? Se você setou ali vai funcionar, só que o valor default de rendered é true, então setar pra true novamente não adianta nada. Você poderia testar setando false, e ver o que acontece.

Então, ele não esta… Pq primeiro eu coloco o telaNovoCliente = true, e depois dou o return, no caso, no construtor do clienteBean, eu coloquei pra iniciar como false, ele e todos os outros que irá verificar oq vai mostrar ou nao…
Coloquei isso no construtor, pq tera mais de 2 telas… Como seria o correto entao?

Obrigado!

Rodrigo_Sasaki

faelzindc:

Então, ele não esta… Pq primeiro eu coloco o telaNovoCliente = true, e depois dou o return, no caso, no construtor do clienteBean, eu coloquei pra iniciar como false, ele e todos os outros que irá verificar oq vai mostrar ou nao…
Coloquei isso no construtor, pq tera mais de 2 telas… Como seria o correto entao?

Obrigado!


Isso parece correto, você só precisa lembrar de renderizar novamente depois de alterar o valor, senão a tela não vai mostra a alteração.

F

Rodrigo Sasaki:
faelzindc:

Então, ele não esta… Pq primeiro eu coloco o telaNovoCliente = true, e depois dou o return, no caso, no construtor do clienteBean, eu coloquei pra iniciar como false, ele e todos os outros que irá verificar oq vai mostrar ou nao…
Coloquei isso no construtor, pq tera mais de 2 telas… Como seria o correto entao?

Obrigado!


Isso parece correto, você só precisa lembrar de renderizar novamente depois de alterar o valor, senão a tela não vai mostra a alteração.

Nao ta funcionando =/

Rodrigo_Sasaki

Poste o seu código novamente entre as tags code.

Poste:
1 - o componente em questão
2 - como você seta inicialmente.
3 - como você altera.

Criado 9 de novembro de 2012
Ultima resposta 9 de nov. de 2012
Respostas 7
Participantes 2