我正在使用JSF和PrimeFaces,但我需要獲取組件ID的值。因爲我使用不同的id構建dinamycally面板,以顯示我需要比較的面板,如果是當前面板,則顯示它。如何在EL中獲取當前組件的ID
例如,如果我在下一個面板
<p:outputPanel id="#{bean.getID}" autoUpdate="true"
renderer=#{@this.id == bean.currentPanel}
>
</p:outputPanel>
和豆類
public class Bean(){
private int numberPanels =0;
private int currentPanel = 0;
public int getID(){
//...a process that return different ID
}
// getter's and setters
}
顯然,@this.id
不起作用。那麼,如何用PrimeFaces獲得組件ID的ID值?
首先,您應該使用'#{bean.ID}'而不是#{bean.getID}'。其次,你不應該在你的getters方法中有業務邏輯,參見[這裏](http://stackoverflow.com/q/2090033/1065197)(如果你仍然堅持把業務邏輯放在getter中,不要抱怨性能問題稍後= \\)。對於這個問題,我想你可以動態綁定'
。我沒有測試過,但可以做你想要/需要的(但是你應該把'bean.currentPanel'改爲'String')。 –
相關:http://stackoverflow.com/q/8168302/1065197 –
@LuiggiMendoza除了getter,文本中至少有3個拼寫錯誤! – skuntsel