this
アクションのMethodExpressionのように現在のUIComponentを渡す可能性はありますか?
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;
}
this
アクションのMethodExpressionのように現在のUIComponentを渡す可能性はありますか?
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;
}
これには、暗黙の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();
// ...
}