如何将动态生成按钮的ID传递给动作方法?

时间:2011-12-14 09:55:58

标签: jsf jsf-2 primefaces

我创建了一个Facelets页面。在页面中动态生成一些按钮,每个按钮都有一个ID, 提交事件时,我想将按钮的ID传递给动作。(按钮是动态的)

但我不知道如何在JSF中传递动态参数。

1 个答案:

答案 0 :(得分:1)

您可以通过UIComponent#getCurrentComponent()获取操作方法中的按钮组件:

public void submit() {
    UIComponent button = UIComponent.getCurrentComponent(FacesContext.getCurrentInstance());
    String id = button.getId(); // or button.getClientId();
    // ...
}

或者,如果您的目标是Servlet 3.0 / EL 2.2容器(Tomcat 7,Glassfish 3等),那么您只需在EL中调用带有参数的方法:

<h:commandButton action="#{bean.submit(component.id)}" /> <!-- or component.clientId -->

public void submit(String id) {
    // ...
}