Não consigo executar métodos a partir na JSF

7 respostas
L

Boa madrugada,

Estou implementando uma aplicação utilizando Hibernate, JSF e Primeface

Estou com o seguinte problema quando executo o meu método save partindo do DAO ele executa e cumpre o que e solicitado por ele,ou seja ele salva tudo como deve ser.
Pois bem, o problema acontece quando eu chamo esse método, no caso save, para o meu ManagedBean e logo em seguido chamo o ManagedBean na minha JSF. ele não salva nada.

Se alguém puder me dar uma força:

DAO
public void save(Cliente cliente){
        Session session = HibernateUtil.getSessionFactory().openSession();
        Transaction t = session.beginTransaction();
        session.save(cliente);
        t.commit();
    }
MANAGEDBEAN
@ManagedBean
@SessionScoped
public class ManagedCliente {
    
    private Cliente cliente;
    private DataModel listaCliente;

    public Cliente getCliente() {
        return cliente;
    }

    public void setCliente(Cliente cliente) {
        this.cliente = cliente;
    }
    
    public String seleciona(){
        cliente = new Cliente();
        return "index";
    }
    
    public String addCliente(){
        ClienteDao dao = new ClienteDao();
        dao.save(cliente);
        return "index"; 
    }
JSF
html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.org/ui">
    <h:head>
        <title>Facelet Title</title>
    </h:head>
    <h:body>
        Hello from Facelets
        <br /> 
        <h:link outcome="welcomePrimefaces" value="Primefaces welcome page" />
        <h:form>
            <p:inputText value="#{managedCliente.cliente.nomeCliente}"/>
            <p:inputText value="#{managedCliente.cliente.idadeCliente}"/>
            <p:commandButton action="#{managedCliente.addCliente}" value="Salvar"/>
        </h:form>
    </h:body>
</html>

7 Respostas

gustavocoolt

eu acho que faltou dar um new no cliente no metodo addCliente do managedbean… testa ai

A

Alguém pode passar e mail para eu enviar uma lista de exercício?

L

Gustavo

Perceba que eu estou iniciando cliente no método seleciona()

Obs: Mudei o nome do meu managedbean de ManagedClinte para ClienteManaged. O motivo foi smiplismente fazer teste.

Bom, para auxiliar nas resposta esta acusando um erro me parece que o managedbean não está sendo localizado:

WARNING: /index.xhtml @14,73 value="#{clienteManaged.cliente.nomeCliente}": Target Unreachable, identifier clienteManaged resolved to null

javax.el.PropertyNotFoundException: /index.xhtml @14,73 value="#{clienteManaged.cliente.nomeCliente}": Target Unreachable, identifier clienteManaged resolved to null

at com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:100)

at org.primefaces.renderkit.InputRenderer.getConverter(InputRenderer.java:162)

at org.primefaces.renderkit.InputRenderer.getConvertedValue(InputRenderer.java:175)

at javax.faces.component.UIInput.getConvertedValue(UIInput.java:1030)

at javax.faces.component.UIInput.validate(UIInput.java:960)

at javax.faces.component.UIInput.executeValidate(UIInput.java:1233)

at javax.faces.component.UIInput.processValidators(UIInput.java:698)

at javax.faces.component.UIForm.processValidators(UIForm.java:253)

at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)

at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)

at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1172)

at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76)

at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)

at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)

at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)

at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)

at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)

at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)

at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)

at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)

at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)

at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)

at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)

at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)

at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)

at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)

at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)

at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)

at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)

at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)

at com.sun.grizzly.ContextTask.run(ContextTask.java:71)

at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)

at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)

at java.lang.Thread.run(Thread.java:619)
Y

Gustavo

Perceba que eu estou iniciando cliente no método seleciona()

Obs: Mudei o nome do meu managedbean de ManagedClinte para ClienteManaged. O motivo foi smiplismente fazer teste.

Bom, para auxiliar nas resposta esta acusando um erro me parece que o managedbean não está sendo localizado:

WARNING: /index.xhtml @14,73 value="#{clienteManaged.cliente.nomeCliente}": Target Unreachable, identifier clienteManaged resolved to null

javax.el.PropertyNotFoundException: /index.xhtml @14,73 value="#{clienteManaged.cliente.nomeCliente}": Target Unreachable, identifier clienteManaged resolved to null

at com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:100)

at org.primefaces.renderkit.InputRenderer.getConverter(InputRenderer.java:162)

at org.primefaces.renderkit.InputRenderer.getConvertedValue(InputRenderer.java:175)

at javax.faces.component.UIInput.getConvertedValue(UIInput.java:1030)

at javax.faces.component.UIInput.validate(UIInput.java:960)

at javax.faces.component.UIInput.executeValidate(UIInput.java:1233)

at javax.faces.component.UIInput.processValidators(UIInput.java:698)

at javax.faces.component.UIForm.processValidators(UIForm.java:253)

at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)

at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)

at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1172)

at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76)

at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)

at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)

at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)

at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)

at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)

at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)

at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)

at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)

at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)

at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)

at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)

at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)

at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)

at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)

at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)

at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)

at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)

at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)

at com.sun.grizzly.ContextTask.run(ContextTask.java:71)

at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)

at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)

at java.lang.Thread.run(Thread.java:619)

Voce provavelmente esqueceu de mudar em alguma lugar. Veja o mapeamento ou a anotacao onde voce da o nome para o managedBean.

L

Gustavo

Perceba que eu estou iniciando cliente no método seleciona()

Obs: Mudei o nome do meu managedbean de ManagedClinte para ClienteManaged. O motivo foi smiplismente fazer teste.

Bom, para auxiliar nas resposta esta acusando um erro me parece que o managedbean não está sendo localizado:

WARNING: /index.xhtml @14,73 value="#{clienteManaged.cliente.nomeCliente}": Target Unreachable, identifier clienteManaged resolved to null

javax.el.PropertyNotFoundException: /index.xhtml @14,73 value="#{clienteManaged.cliente.nomeCliente}": Target Unreachable, identifier clienteManaged resolved to null

at com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:100)

at org.primefaces.renderkit.InputRenderer.getConverter(InputRenderer.java:162)

at org.primefaces.renderkit.InputRenderer.getConvertedValue(InputRenderer.java:175)

at javax.faces.component.UIInput.getConvertedValue(UIInput.java:1030)

at javax.faces.component.UIInput.validate(UIInput.java:960)

at javax.faces.component.UIInput.executeValidate(UIInput.java:1233)

at javax.faces.component.UIInput.processValidators(UIInput.java:698)

at javax.faces.component.UIForm.processValidators(UIForm.java:253)

at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)

at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)

at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1172)

at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76)

at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)

at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)

at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)

at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)

at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)

at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)

at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)

at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)

at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)

at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)

at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)

at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)

at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)

at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)

at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)

at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)

at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)

at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)

at com.sun.grizzly.ContextTask.run(ContextTask.java:71)

at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)

at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)

at java.lang.Thread.run(Thread.java:619)

Voce provavelmente esqueceu de mudar em alguma lugar. Veja o mapeamento ou a anotacao onde voce da o nome para o managedBean.

Mas antes mesmo de fazer a alteração já estava acontecendo esse erro, tentei a troca dos nomes para ver se solucionava o problema.

Se puder me ajudar, fico grato.

d34d_d3v1l

cara… faz um teste pra mim? Pode escolher uma abaixo:

1- Cria um construtor do ManagedBean e instancia o Cliente no construtor
2- Instancia o Cliente na propria declaração
3- Cria um método com @PostConstruct e instancia o cliente lá

Só me responde uma coisa: pq ta usando SessionScoped?

abraço

L

d34d_d3v1l:
cara… faz um teste pra mim? Pode escolher uma abaixo:

1- Cria um construtor do ManagedBean e instancia o Cliente no construtor
2- Instancia o Cliente na propria declaração
3- Cria um método com @PostConstruct e instancia o cliente lá

Só me responde uma coisa: pq ta usando SessionScoped?

abraço

Estou utilizando SessionScoped por que preciso de levar dados de uma pagina para outra.

Criei os construtores no Managedbean, testei mas nada acontece.

Mas qual seria a funcionalidade do @PostConstruct nesse caso. E, como deveria instancias o cliente dentro da propria declaração, não entendi muito bem.

Grato

Criado 27 de outubro de 2012
Ultima resposta 28 de out. de 2012
Respostas 7
Participantes 5