我创建了一个Facelets页面。在页面中动态生成一些按钮,每个按钮都有一个ID, 提交事件时,我想将按钮的ID传递给动作。(按钮是动态的)
但我不知道如何在JSF中传递动态参数。
答案 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) {
// ...
}