Как передать идентификатор динамически сгенерированной кнопки в метод действия?

Я создал страницу Facelets. На странице динамически генерируются некоторые кнопки, каждая кнопка имеет идентификатор. При отправке события я хочу передать идентификатор кнопки действию (кнопка динамически)

Но я не знаю, как передать динамические параметры в JSF.


person wsxiapiaoxue    schedule 14.12.2011    source источник


Ответы (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) {
    // ...
}
person BalusC    schedule 14.12.2011