JSF - render - problema com o AND

3 respostas
viniciuspadua

estou querendo fazer uma condição através do render, entretanto quando uso o AND (&&) da erro, a página nem é exibida ocorrendo uma execption.

<p:commandButton value="Excluir" rendered="#{agendaAuditorio.reservaAuditorio!=null && agendaAuditorio.reservaAuditorio.idReservaAuditorio > 0}"
   actionListener="#{agendaAuditorio.excluir}" update="growl" oncomplete="handleLoginRequest(xhr, status, args)"/>

no código acima se trocar o and (&&) pelo ou (||) a página é exibida! entretanto se colocar o and ocorre uma exception.

Alguem sabe o pq! ou como fazer o AND

27/09/2010 08:48:11 org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet Faces Servlet threw exception
java.lang.IllegalArgumentException: null source
	at java.util.EventObject.<init>(Unknown Source)
	at javax.faces.event.SystemEvent.<init>(SystemEvent.java:67)
	at javax.faces.event.ComponentSystemEvent.<init>(ComponentSystemEvent.java:69)
	at javax.faces.event.PostRestoreStateEvent.<init>(PostRestoreStateEvent.java:69)
	at com.sun.faces.lifecycle.RestoreViewPhase.deliverPostRestoreStateEvent(RestoreViewPhase.java:256)
	at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:245)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
	at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:107)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at SessionJSF.doFilter(SessionJSF.java:51)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:389)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Unknown Source)

3 Respostas

FernandoCartaxo

o && no expression language é AND

só trocar o && pelo AND

&lt;p:commandButton value="Excluir" rendered="#{agendaAuditorio.reservaAuditorio!=null AND agendaAuditorio.reservaAuditorio.idReservaAuditorio &gt; 0}"  
   actionListener="#{agendaAuditorio.excluir}" update="growl" oncomplete="handleLoginRequest(xhr, status, args)"/&gt;

por isso que dá nullpointexception, a primeira condição é false

robsonsm

eu tive o mesmo problema, troquei o o && pelo AND mas mesmo assim da erro, alguem sabe pq?

robsonsm

Ja resolvi…
troquei AND (maiusculo)
por and (minusculo)
e funcionou.

Criado 27 de setembro de 2010
Ultima resposta 19 de nov. de 2010
Respostas 3
Participantes 3