Как передать идентификатор динамически генерируемой кнопки в метод действия? - PullRequest
0 голосов
/ 14 декабря 2011

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

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

1 Ответ

1 голос
/ 14 декабря 2011

Компонент кнопки в методе действия можно получить по 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) {
    // ...
}
...