是否有可能将当前的UIComponent作为操作中的this的MethodExpression传递?
XHTML
<p:menuitem id="test" value="Test" action="#{controller.test(this)}" update="test" />Java
public String test(MenuItem item) {
// Do something with item
return null;
}发布于 2012-02-09 22:07:13
您可以使用隐式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) {
// ...
}或者,如果您只对例如value属性感兴趣:
<p:menuitem ... action="#{controller.test(component.value)}" />使用
public void test(String value) {
// ...
}您也可以使用UIComponent#getCurrentComponent()来实现以下功能:
<p:menuitem ... action="#{controller.test}" />使用
public void test() {
UIComponent component = UIComponent.getCurrentComponent(FacesContext.getCurrentInstance());
String id = component.getId();
String value = ((MenuItem) component).getValue();
// ...
}https://stackoverflow.com/questions/9212079
复制相似问题