ValueChangeListener + Converter

0 respostas
nandobgi

Pessoal tenho um inputText com um converter para trabalhar com um
objeto do tipo Cliente, nesse mesmo campo tenho um
valueChangeListener, gostaria de saber se é possivel no meu managed
bean resgatar o new e old value do meu objeto Cliente, estou fazendo
de uma forma que está me retornando um erro.

<h:inputText id="txtCliente"
                  value="#{pedidoHandler.pedido.cliente}"
                  size="60"
                  styleClass="inputText"
                  tabindex="4"
                  valueChangeListener="#{pedidoHandler.preferenciasCliente}">
       <f:converter converterId="clienteConverter" />
       <a4j:support event="onchange"/>
</h:inputText>

Managed Bean

public void preferenciasCliente(ValueChangeEvent event) {
    System.out.println( ((Cliente)event.getNewValue()).getRazaoSocial
());
}
Erro:

8:33:14,859 ERROR AjaxViewRoot:327 - Error processing faces event for
the component formButton:txtCliente
javax.faces.event.AbortProcessingException: /pedido/
cadastrarPedido.xhtml @152,75 valueChangeListener="#
{pedidoHandler.preferenciasCliente}": java.lang.NullPointerException
       at
javax.faces.event.MethodExpressionValueChangeListener.processValueChange
(MethodExpressionValueChangeListener.java:93)
       at javax.faces.event.ValueChangeEvent.processListener
(ValueChangeEvent.java:134)
       at javax.faces.component.UIComponentBase.broadcast
(UIComponentBase.java:771)
       at org.ajax4jsf.component.AjaxViewRoot.processEvents
(AjaxViewRoot.java:321)
       at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents
(AjaxViewRoot.java:294)
       at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:
253)
       at org.ajax4jsf.component.AjaxViewRoot.processValidators
(AjaxViewRoot.java:455)
       at com.sun.faces.lifecycle.ProcessValidationsPhase.execute
(ProcessValidationsPhase.java:76)
       at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
       at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:
118)
       at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:290)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:206)
       at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:
178)
       at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
       at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest
(BaseFilter.java:390)
       at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:517)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:235)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:206)
       at br.com.sensatta.pedido.util.HibernateSessionFilter.doFilter
(HibernateSessionFilter.java:40)
       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:175)
       at org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:128)
       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:286)
       at org.apache.coyote.http11.Http11Processor.process
(Http11Processor.java:844)
       at org.apache.coyote.http11.Http11Protocol
$Http11ConnectionHandler.process(Http11Protocol.java:583)
       at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:
447)
       at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
       at br.com.sensatta.pedido.managed.PedidoHandler.preferenciasCliente
(PedidoHandler.java:106)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
       at java.lang.reflect.Method.invoke(Unknown Source)
       at org.apache.el.parser.AstValue.invoke(AstValue.java:152)
       at org.apache.el.MethodExpressionImpl.invoke
(MethodExpressionImpl.java:276)
       at com.sun.facelets.el.TagMethodExpression.invoke
(TagMethodExpression.java:68)
       at
javax.faces.event.MethodExpressionValueChangeListener.processValueChange
(MethodExpressionValueChangeListener.java:91)
       ... 31 more

O que estou fazendo de errado?

Obrigado pessoal.

Criado 20 de março de 2009
Respostas 0
Participantes 1