Boa tarde comunidade, venho pedir ajuda a vocês…
Seguinte, estou desenvolvendo uma aplicação a na exclusão eu gostaria de pedir a confirmação do usuário. Se eu coloco direto na action do botão ele funciona perfeitamente, porém, se do botão eu chamo uma p:confirmDialog, ele perde o objeto e tenho assim um nullpointer!
Código do meu xhtml onde está o botão de exclusão e o dialog
Tirei ele do form e coloquei em outro form, mudei o botao de H:COMANDBUTTON para P:COMANDBUTTON ai coloquei o update=":outroform:iddialog" e mesmo assim nao funcionou!
Alguma outra sugestao?
Ps: Se estiver usando primefaces 4.0, o confirmDiaglo mudou, agora é só colocar essa linha dentro de um commandButton. Tem que colocar o setPropertyActionListener também, ficaria algo tipo:
Meu codigo ficou assim, porem, ao abrir o confirmDialog, quando eu clico no botao de “Sim” ele nem vai ao meu metodo de exclusao e da um nullpointer antes disso;
java.lang.NullPointerException
at com.sun.faces.context.PartialViewContextImpl.createPartialResponseWriter(PartialViewContextImpl.java:485)
at com.sun.faces.context.PartialViewContextImpl.access$300(PartialViewContextImpl.java:73)
at com.sun.faces.context.PartialViewContextImpl$DelayedInitPartialResponseWriter.getWrapped(PartialViewContextImpl.java:619)
at javax.faces.context.PartialResponseWriter.startDocument(PartialResponseWriter.java:116)
at org.primefaces.context.PrimePartialResponseWriter.startDocument(PrimePartialResponseWriter.java:205)
at com.sun.faces.context.AjaxExceptionHandlerImpl.handlePartialResponseError(AjaxExceptionHandlerImpl.java:201)
at com.sun.faces.context.AjaxExceptionHandlerImpl.handle(AjaxExceptionHandlerImpl.java:126)
at javax.faces.context.ExceptionHandlerWrapper.handle(ExceptionHandlerWrapper.java:100)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:119)
at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:121)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Gostaria de agradecer a todos que me ajudaram, consegui resolver o meu problema… Talvez nem seja do jeito mais “certo”, mas funcionou e é o que importa rsrs…
Abaixo o código como ficou!
Só para informação. Quando não se seta o escopo de um managedbean, por default fica @RequestScoped.
Para melhor legibilidade do código, mesmo que não necessário, é recomendável a inserção do @RequestScoped.