Pessoal estou com o seguinte problema:
Recupero o Id pra alterar, mas ele ta retornando null…
JSP:<h:commandLinkactionListener="#{DadosHandler.carregaDados}"><h:outputTextvalue="Alterar"styleClass="A"/><f:paramid="editId"name="id"value="#{d.id}"/>MeuHandler:publicvoidcarregaDados(ActionEventevent){UIComponentcomandLink=event.getComponent();UIParameterparameter=(UIParameter)comandLink.findComponent("editId");Longid=(Long)parameter.getValue();Sessionsession=HibernateUtil.getCurrentSession();DAO<Dados>dao=newDAO<Dados>(session,Dados.class);this.dados=dao.load(id);}//Esse aí em cima funcionapublicvoidsalvarDados(){Sessionsession=HibernateUtil.getCurrentSession();DAO<Dados>dao=newDAO<Dados>(session,Dados.class);if(dados.getId()==null){dao.salveOuAtualiza(this.dados);}else{session.merge(this.dados);}this.dados=newDados();}//Esse aki em cima ta retornando null e salvandoDAO@SuppressWarnings("unchecked")publicvoidsalveOuAtualiza(Tt){session.saveOrUpdate(t);}
N era isso não, ainda vem null, esse
this.dados = new Dados();
é para não trazer os dados q eu acabei de digitar nos meus campos (O JSF deixa os dados nos inputs) dai ele vem em branco p/ novo cadastro, o evento q eu trato é p/ ele pegar do banco e carregar nos inputs e o salveOuUpdate (nome horrivel q eu dei) é p/ atualizar, mas nisso dele carregar o cara e eu modificar, qdo clico no salvar ele perde o id dai vem null e ele insere 1 novo :D
Entendeu oq ta acontecendo? pior q tá igual outro q eu fiz e funciona...
Basicamente, eu pego o ID q ta na tabela (dentro do JSF), mando pro Handler as alterações e ele manda p/ o DAO, mas está indo null p/ o Handler.
:cry:
otaviofcs
Cara, tá brabo de ver os fragmentos de código e junta-los na cabeça :shock:
Mas vamos tentar uma coisa: o seu carregaDados sempre busca o valor do campo do seu formulário. só que eu não tô vendo você ter o id preenchido no formulário (porque ele sempre está pra inclusão). Então, se o id é sempre vazio (nulo), ele nunca vai ter como dar o carregaDados.
Vê se eu falei besteira, porque tá difícil sem ver por inteiro…
abraços,
otávio
Eduardo_Bregaida
O Id Retorna depois q clico no link Alterar, vou postar o codigo todo, acho q facilita, pq ta osso resolver isso =)
<%@pagecontentType="text/html; charset=UTF-8"%><%@tagliburi="http://java.sun.com/jsf/html"prefix="h"%><%@tagliburi="http://java.sun.com/jsf/core"prefix="f"%><%@tagliburi="http://myfaces.apache.org/tomahawk"prefix="t"%><%@tagliburi="http://myfaces.apache.org/sandbox"prefix="s"%><html><head><linkhref="css/master.css"rel="stylesheet"type="text/css"><linkhref="../css/master.css"rel="stylesheet"type="text/css"><metahttp-equiv="Content-Type"content="text/html; charset=Cp1252"/><title>Agenda</title></head><body><f:view><center>AgendaWeb<t:panelTabbedPanebgcolor="0071e1"styleClass="ML_BACKGROUND"width="30%"><t:panelTablabel="Dados"><h:form><t:panelGrid><h:outputTextvalue="Nome:"styleClass="titulo_campos"/><h:inputTextvalue="#{DadosHandler.dados.nome}"required="true"/><h:outputTextvalue="Tel:"styleClass="titulo_campos"/><h:inputTextvalue="#{DadosHandler.dados.telefoneResidencial}"required="false"/><h:outputTextvalue="Tel Com.:"styleClass="titulo_campos"/><h:inputTextvalue="#{DadosHandler.dados.telefoneComercial}"required="false"/><h:outputTextvalue="Cel::"styleClass="titulo_campos"/><h:inputTextvalue="#{DadosHandler.dados.celular}"required="false"/><h:outputTextvalue="Nextel:"styleClass="titulo_campos"/><h:inputTextvalue="#{DadosHandler.dados.nextel}"required="false"/><h:outputTextvalue="E-mail:"styleClass="titulo_campos"/><h:inputTextvalue="#{DadosHandler.dados.email}"required="false"/><h:outputTextvalue="Observação:"styleClass="titulo_campos"/><h:inputTextareavalue="#{DadosHandler.dados.observacao}"required="true"styleClass="TEXTAREA"/><h:commandButtonvalue="Gravar"action="#{DadosHandler.salvarDados}"styleClass="BUTTON_imagem"/><h:commandButtonvalue="Excluir"action="#{DadosHandler.deletarDados}"styleClass="BUTTON_imagem"/></t:panelGrid></h:form><h:form><h:dataTablestyleClass="TableWhite"value="#{DadosHandler.dados2}"id="tabelaDados"rows="5"var="d"border="1"rendered="#{not empty DadosHandler.dados2}"><h:column><f:facetname="header"><h:outputTextvalue="ID"styleClass="titulo_campos"/></f:facet><h:outputTextvalue="#{d.id}"styleClass="titulo_campos"/></h:column><h:column><f:facetname="header"><h:outputTextvalue="Nome"styleClass="titulo_campos"/></f:facet><h:outputTextvalue="#{d.nome}"styleClass="titulo_campos"/></h:column><h:column><f:facetname="header"><h:outputTextvalue="Telefone Res."styleClass="titulo_campos"/></f:facet><h:outputTextvalue="#{d.telefoneResidencial}"styleClass="titulo_campos"/></h:column><h:column><f:facetname="header"><h:outputTextvalue="Telefone Com."styleClass="titulo_campos"/></f:facet><h:outputTextvalue="#{d.telefoneComercial}"styleClass="titulo_campos"/></h:column><h:column><f:facetname="header"><h:outputTextvalue="Celular."styleClass="titulo_campos"/></f:facet><h:outputTextvalue="#{d.celular}"styleClass="titulo_campos"/></h:column><h:column><f:facetname="header"><h:outputTextvalue="Nextel"styleClass="titulo_campos"/></f:facet><h:outputTextvalue="#{d.nextel}"styleClass="titulo_campos"/></h:column><h:column><f:facetname="header"><h:outputTextvalue="E-mail"styleClass="titulo_campos"/></f:facet><h:outputTextvalue="#{d.email}"styleClass="titulo_campos"/></h:column><h:column><f:facetname="header"><h:outputTextvalue="Observação"styleClass="titulo_campos"/></f:facet><h:outputTextvalue="#{d.observacao}"styleClass="titulo_campos"/></h:column><h:column><f:facetname="header"><h:outputTextvalue="Alterar"styleClass="titulo_campos"/></f:facet><h:commandLinkactionListener="#{DadosHandler.carregaDados}"><h:outputTextvalue="Alterar"styleClass="A"/><f:paramid="editId"name="id"value="#{d.id}"/></h:commandLink></h:column></h:dataTable><t:dataScrollerfor="tabelaDados"paginator="true"paginatorMaxPages="7"styleClass="A"></t:dataScroller><h:outputTextvalue="Teste Ajax em JSF"styleClass="titulo_campos"/><s:inputSuggestAjaxsuggestedItemsMethod="#{DadosHandler.suggest}"></s:inputSuggestAjax><h:outputTextvalue="Calendário em JSF"styleClass="titulo_campos"/><t:inputCalendarrenderAsPopup="true"value="#{DadosHandler.dados.data.time}"/></h:form></t:panelTab></t:panelTabbedPane></center></f:view></body></html>
É isso o código é q tá grande :D
Eduardo_Bregaida
Alguem ai conseguiu ver o problema? Ta osso esse ai
Eduardo_Bregaida
Ninguém?
Eduardo_Bregaida
Resolvi, o erro é q o amateras não atualiza o faces-config, logo qdo mudei p/ session, ele nao atualizou o xml, só a interface gráfica do plugin no Eclipse