ActionListener не вызывается для динамически созданного HtmlCommandLink - PullRequest
2 голосов
/ 02 сентября 2011

У меня динамически создается HtmlCommandLink с ActionListener, но когда я нажимаю на ссылку, метод прослушивателя действий не вызывается.

Код:

   public HtmlPanelGroup getP() {
        p = new HtmlPanelGroup();
        FacesContext ctx = FacesContext.getCurrentInstance();
        HtmlCommandLink l = new HtmlCommandLink();
        l.setTitle("Goto");
        l.setImmediate(true);
        l.addActionListener(new ComponenetListener());
        //new ListenerTest());//new MethodExpressionActionListener(methodExpression) );
        l.setValue("Go");
        p.getChildren().add(l);
        return p;
    }

и код слушателя

  @ManagedBean
  @SessionScoped
  public class ComponenetListener implements ActionListener{

       public ComponenetListener() {
          String s="sridhar";
           }

     @Override
     public void processAction(ActionEvent event) throws AbortProcessingException {
         UIComponent eventComponent = event.getComponent();
         System.out.println("test");
         String strEventCompID = eventComponent.getId();
         throw new UnsupportedOperationException("Not supported yet.");
       }
   }

1 Ответ

1 голос
/ 02 сентября 2011

Вы должны дать всем своим динамически созданным компонентам ввода и команд фиксированный идентификатор.

l.setId("yourID");

Вам также необходимо убедиться, что в качестве родительского элемента дерева присутствует <h:form> (или UIForm) компонент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...