Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get id of current component in EL

I'm working with JSF and PrimeFaces, but I need to get the value of the id of a component. Because I'm building dinamycally panels with diferent id, to show a the panel I need to compare if is the current panel, then show it.

For example if I've the next panel

<p:outputPanel id="#{bean.getID}" autoUpdate="true"
   renderer=#{@this.id == bean.currentPanel}
>
</p:outputPanel>

And Bean

public class Bean(){
  private int numberPanels =0;
  private int currentPanel = 0;

  public int getID(){
     //...a process that return different ID
  }
  // getter's and setters

}

Obviously, @this.id doesn't work. So, how to get the value of ID of componente ne JSF with PrimeFaces?

like image 513
Cristian Avatar asked Jan 12 '23 07:01

Cristian


1 Answers

There is an implicit #{component} object in the EL scope that evaluates to the current UI component. Given this information, you'll get the following attribute:

rendered="#{component.id eq bean.currentPanel}"
like image 97
skuntsel Avatar answered Jan 21 '23 17:01

skuntsel