Я работаю с JSF и PrimeFaces, но мне нужно получить значение id компонента. Поскольку я строю динамические панели с разным идентификатором, чтобы показать панель, мне нужно сравнить, является ли текущая панель, а затем показать ее.Как получить идентификатор текущего компонента в EL
Например, если я имею следующую панель
<p:outputPanel id="#{bean.getID}" autoUpdate="true"
renderer=#{@this.id == bean.currentPanel}
>
</p:outputPanel>
И 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
}
Очевидно, что @this.id
не работает. Итак, как получить значение идентификатора компонента ne JSF с помощью PrimeFaces?
Во-первых, вы должны использовать '# {bean.ID}' вместо '# {bean.getID}'. Во-вторых, вы не должны иметь бизнес-логику в своих методах getters, см. [Здесь] (http://stackoverflow.com/q/2090033/1065197) (если вы все еще настаиваете на размещении бизнес-логики в геттере, не жалуйтесь на проблемы с производительностью позже = \\). На вопрос, я думаю, вы можете динамически связывать '' , Я не тестировал это, но могу делать то, что вам нужно/нужно (но вы должны изменить 'bean.currentPanel' на' String'). –
Связанные: http://stackoverflow.com/q/8168302/1065197 –
@LuiggiMendoza В тексте помимо геттера есть как минимум 3 опечатки! – skuntsel