Binding em JSF

6 respostas
L

Prezados, alguém tem alguma dica de como usar binding com componentes JSF ou richFaces.
Tipo:

JSP:

<rich:menuItem id="item1" submitMode="ajax" binding="#{menu.item1}"/>

class:

private MenuItemTag item1 = new MenuItemTag();

E chamar os atributos da tag pela propriedade item1.

Valeu!

6 Respostas

B

1) colocar get e set pra essa propriedade;
2) em algum action você pode alterar esse componente, então quando a página (ou via ajax) for renderizada novamente o componete vai estar conforme você o alterou.

um exemplo:

<h:commandButton value="Atualiza Texto" action="#{meuManagedBean.atualiza}"/>
<h:inputText value="#{meuManagedBean.texto}" binding=#{meuManagedBean.componente}>

public class MeuManagedBean{

    private String texto;
    private InputTextBlaBla componente;

   //gets e sets.. getComponte()  setComponte(bla bla) ....

  public String atualiza{
  componente.setValue("Novo Texto"); //só exemplos, não seriam essas as propriedades.
  componente.setDisabled(true);
  return null;
  }

}
L

Valeu bobMoe é isso mesmo!
Mas só que os componentes não webuiJSF tem valores ValueExpression, então eu não consigo simplismente mudar com o set.
Algusn poucos itens tem sim, como o id ou name, que aceitam parametros String mas os outros não.

Se você souber como mudo através de valueExpression eu agradeço!!

S

Cara, dá uma olhada nesse post, ele diz como fazer um menu dinamico com richFaces usando o binding
http://www.guj.com.br/posts/list/80313.java#426646

L

Caramba, grande é isso aí mesmo!!!
Esse componente que você colocou lá. Aceita atributos sem valueExpression é assim mesmo que eu to querendo!!
Valeu obrigado!!!
Vou ver como fica aqui : )

L

Muito bom esse tópico:

http://www.guj.com.br/posts/list/80313.java#426646

S

Esqueci de colocar o metodo getMethod da minha classe JSFUtil, esse é o metodo que retorna um ActionExpression

public static MethodExpression getMethod(String action) { FacesContext context = FacesContext.getCurrentInstance(); MethodExpression methodExpression = context.getApplication().getExpressionFactory() .createMethodExpression(context.getELContext(), action,null, new Class<?>[0]); return methodExpression; }

Criado 3 de fevereiro de 2009
Ultima resposta 3 de fev. de 2009
Respostas 6
Participantes 3