[RESOLVIDO] Enviar valor pra backing bean: RichFaces
14 respostas
tati.mat.moreira
Oi pessoal,
estou usando o suggestion do Faces. Ele está buscando os registros do banco certinho e preenchendo o input quando eu clico. O que eu não consigo fazer é pegar o id da pessoa que foi escolhida e enviar para
meu backing bean. Se eu conseguir enviar o id eu consiguirei terminar a minha pesquisa com o método load(), pois ele está funcionando certinho. Segue o código:
pagina:
aparente vc chama a ação pessoaFisicaFace.autocomplete, que retorna uma lista de String e vc guarda essas String na variavel var=“fisica”.
Dessa forma vc usa o outputText com o value #{fisica} para imprimir essa string, e quando vc tenta fazer #{fisica.id} vc ganha o erro.
No seu managedbean define que o método autocomplete retorne uma List
tati.mat.moreira
Troquei, mas recebo um novo erro:
Caused by:
java.lang.NumberFormatException - For input string: "Joao da Silva"
Caused by:
org.apache.jasper.el.JspPropertyNotFoundException - /pesquisaPessoaFisica.jsp(56,49) ‘#{fisica.nome}’ Property ‘nome’ not found on type java.lang.String
rsakurai
Verifica se o seu DAO está retornando o objeto inteiro ou apenas o nome, porque vc deixou a projeção apenas o nome da pessoa:
Ele lista todas as pessoas no suggestion certinho, mas quando eu seleciono um deles e clico no botão pesquisar recebo o erro:
Caused by: java.lang.IllegalArgumentException: id to load is required for loading
at org.hibernate.event.LoadEvent.(LoadEvent.java:74)
at org.hibernate.event.LoadEvent.(LoadEvent.java:56)
at org.hibernate.impl.SessionImpl.load(SessionImpl.java:819)
at org.hibernate.impl.SessionImpl.load(SessionImpl.java:815)
at br.com.ez.dao.Dao.load(Dao.java:22)
at br.com.ez.faces.PessoaFisicaFace.load(PessoaFisicaFace.java:91)
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:172)
at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
at org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:68)
... 32 more
maurenginaldo
Qual o seu objetivo ao selecionar a pessoa?
Você quer fazer uma busca no onSelect?
Se for isso faça assim:
//Substituaessecódigo
<a4j:supportevent="onselect"><f:setPropertyActionListenervalue="#{fisica.id}"target="#{pessoaFisicaFace.pessoaFisica.id}"/></a4j:support>
//poresse
<a4j:supportevent="onselect"action="#{pessoaFisicaFace.nome_metodo_pesquisa}"reRender="campos de resultado"/>
No seu método de pesquisa você filtra pelo nome selecionado em #{pessoaFisicaFace.pessoaFisica.nome}