是否有可能在操作的MethodExpression中传递UIComponent?
XHTML
<p:menuitem id="test" value="Test" action="#{controller.test(this)}" update="test" />
爪哇
public String test(MenuItem item) {
// Do something with item
return null;
}
答案 0 :(得分:4)
您可以使用隐式EL变量#{component}
:
<p:menuitem ... action="#{controller.test(component)}" />
与
public void test(UIComponent component) {
// ...
}
或者,如果您只对id
属性感兴趣:
<p:menuitem ... action="#{controller.test(component.id)}" />
与
public void test(String id) {
// ...
}
您也可以使用UIComponent#getCurrentComponent()
:
<p:menuitem ... action="#{controller.test}" />
与
public void test() {
UIComponent component = UIComponent.getCurrentComponent(FacesContext.getCurrentInstance());
// ...
}