ActionListener do Primefaces num MBean

2 respostas
P

Estou criando um Menu dinamico e cada item do menu tem sua propria acao, porem como faco
pra adicionar um ActionListener? segue codigo feito até o momento:

MenuItem menuitem = new MenuItem();
menuitem.addActionListener(new ActionListener() {
		        @Override
		        public void processAction(ActionEvent event)
		                throws AbortProcessingException {
		            System.out.println("Testando...");
		        }
		    });

Mas assim nao funciona, quando clico no item da erro:

java.lang.IllegalStateException: java.lang.InstantiationException: br.teste.controller.MenuMBean$1

javax.faces.component.StateHolderSaver.restore(StateHolderSaver.java:106)

javax.faces.component.AttachedObjectListHolder.restoreState(AttachedObjectListHolder.java:153)


2 Respostas

P

ninguem?

jamirdeajr

Segundo o BalusC… lá no Stackoverflow:
http://stackoverflow.com/questions/5432897/executing-the-actionlistener-of-a-primefaces-menu-item-leads-to-an-illegalstate
EL (leia-se: reflection) não pode acessar/construir classes anônimas.
Adaptando ao seu caso…
Então troque:

menuitem.addActionListener(new ActionListener() { @Override public void processAction(ActionEvent event) throws AbortProcessingException { System.out.println("Testando..."); } });
por:
menuitem.addActionListener(new MinhaActionListener());
mais isso:

public class MinhaActionListener implements ActionListener { @Override public void processAction(ActionEvent event) throws AbortProcessingException { System.out.println("Testando..."); } }

Criado 25 de março de 2011
Ultima resposta 25 de mar. de 2011
Respostas 2
Participantes 2