Hi! I wonder how we can do dynamic binding in richfaces 4. I have seen tutorials that work in previous versions of richfaces but not in this version.
In my index.xhtml, i have definded a UIMenuItem like this:
<rich:menuItem rendered="false"/>
In the managed bean, I am doing these:
UIMenuItem item = (UIMenuItem) ctx.getApplication().createComponent(ctx, UIMenuItem.COMPONENT_TYPE, "org.richfaces.MenuItemRenderer");
Class[] params = {};
MethodExpression action = FacesContext.getCurrentInstance().getApplication().getExpressionFactory().createMethodExpression(ctx.getELContext(),"#{bean.action}",String.class, params);
MethodExpression actionListener = FacesContext.getCurrentInstance().getApplication().getExpressionFactory().createMethodExpression(ctx.getELContext(),"#{bean.action}",null, new Class[]{ActionEvent.class});
item.setActionExpression(action);
item.addActionListener(new MethodExpressionActionListener(actionListener));
The action method that was wired with the component only does this since I am only testing if the dynamic binding works:
public String getAction() {
System.out.println("It worked!");
return null;
}
I tried binding it manually like this and it worked.
<rich:menuItem rendered="false" binding="#{bean.action}"/>
I just wonder how to do it dynamically... Any response would be appreciated.