JSF - Obter componente da View

7 respostas
D

Opa :smiley:

Alguem sabe como que eu posso pegar um componente da View atraves do ID dele?

[]'s

David

7 Respostas

T

davidpadilha:
Opa :smiley:

Alguem sabe como que eu posso pegar um componente da View atraves do ID dele?

[]'s

David

Você pode usar a propriedade binding para ligar ele diretamente a um atributo do seu bean. Era isso que você queria?:

D

Nao…pq eu vou usar ele em diversos beans e nao qria usar binding. Tem outra opcao sem ser com binding?

Z

Por que então vc não cria uma classe container e coloca ele num atributo lá usando o binding, assim vc pode utilizar em outros beans pq ele estará lá no container

[]`s

Lucas_Lacerda_Gertel
Object component = (Object) FacesContext.getCurrentInstance().getViewRoot().findComponent("componente");

Abraços,
Gertel

D

Dessa ultima maneira, eu nao consigo manipular o componente no meu managed bean e depois atualizar ele na view?

D

Zabimaru:
Por que então vc não cria uma classe container e coloca ele num atributo lá usando o binding, assim vc pode utilizar em outros beans pq ele estará lá no container

[]`s

Como funcionaria? Tem algum exemplo? Essa classe conteiner seria um managed bean e só teriam os componentes dentro dela? E o acesso dela no meu Bean, como seria?

Z
Opa cara, então a minha sugestão é a seguinte: Vc faz uma classe container exemplo:
public class Container{
private String teste;
// get e set
}
Na sua Bean vc coloca.
public class Bean{
private Container container;

//get e set
//Agora vc pode usar em qqr bean o atributo teste que está no container desde que vc mapeie e crie uma instancia
this.container.setTeste("teste");
}
Mas não esqueça que vc precisa mapear no faces-config. E pra vc passar da tela pro componente é só vc enviar pro container que ele ficará lá. Seria essa a minha sugestão. Pra enviar apenas como sugestão tb:
<f:setPropertyActionListener target="#{bean.container.teste}"
value="#{o value que vc qr passar}" />

[]`s

Criado 20 de agosto de 2008
Ultima resposta 20 de ago. de 2008
Respostas 7
Participantes 4