2012-02-09 8 views
1

アクションのMethodExpressionにUIComponentを渡す可能性はありますか?アクションのUIComponentを渡す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; 
} 

答えて

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()); 
    // ... 
} 
関連する問題