2

actionListenerマネージド Bean に、多くのコマンド ボタンによって呼び出されるメソッドがあります。

public void verifyTestDisponibility(ActionEvent actionEvent) {
    if (button1 clicked) {
        // ...
    }
    if (button2  clicked) {
        // ...
    }
}

私がこだわっている部分は、クリックされたコマンド ボタンを識別することです。どうすれば識別できますか?

4

3 に答える 3

7

こんな感じで使えます

xhtml ページでは<h:commandButton>、actionListener でタグを使用できます

<h:commandButton id="btn1" action="#{yourBean.method}" value="ButtonValue"
   actionListener="#{yourBean.commandClicked}"></h:commandButton>

マネージド Bean で

private String buttonId;
/* getters and setters for buttonId goes here */

public void commandClicked(ActionEvent event) {
  /* retrieve buttonId which you clicked */
  buttonId = event.getComponent().getId();

  /*check for which button you clicked*/
  if(buttonId.equals("btn1")){

  }else{

  }
}
于 2012-10-09T10:55:07.680 に答える
2

を使用できます。event.getComponent().getClientId();

if (event.getComponent().getClientId().equals("firstButton")).....
于 2012-10-09T10:17:45.103 に答える
0

これは ajax リスナーでも機能します。私は Primefaces 5 ajax リスナーで使用していました。例えば:

public void myListener(AjaxBehaviorEvent ev) {
  String clientId = ev.getComponent().getClientId();
  ...
}
于 2015-03-25T05:37:20.790 に答える