Estou com um problema na hora de alterar o dados de um formulario.
insiro um dado,
dai mando alterar,
Quando altero mais de 3 vezes o formulario volta a apresentar os dados de quanto eu alterei a primeira vez
Estou com um problema na hora de alterar o dados de um formulario.
insiro um dado,
dai mando alterar,
Quando altero mais de 3 vezes o formulario volta a apresentar os dados de quanto eu alterei a primeira vez
Posta o código ai.
<?xml version="1.0" encoding="windows-1252"?>
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.prime.com.tr/ui">
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"/>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Cache-Control" content="no-store,No-cache,must-revalidate,post-check=0,pre-check=0,max-age=0"/>
<meta http-equiv="Pragma" content="No-cache"/>
<meta Http-Equiv="Cache-Control" Content="no-cache"/>
<meta HTTP-EQUIV="Refresh" />
<meta http-equiv="Expires" content="-1"/>
<title>Listar</title>
</h:head>
<h:body>
<p>
<h:form>
<p:dataTable var="a" value="#{dadosMB.listar}" >
<p:column>
<f:facet name="header">
<h:outputText value="ID"/>
</f:facet>
<h:outputText value="#{a.idDados}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Nome"/>
</f:facet>
<h:outputText value="#{a.nome}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Sobrenome"/>
</f:facet>
<h:outputText value="#{a.sobrenome}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="AÇÃO"/>
</f:facet>
<p:commandLink value="EDITAR / " action="#{dadosMB.editar}" ajax="false">
<f:setPropertyActionListener target="#{dadosMB.dados}" value="#{a}"/>
</p:commandLink>
<p:commandLink value=" EXCLUIR / " action="#{dadosMB.excluir}" ajax="false">
<f:setPropertyActionListener target="#{dadosMB.dados}" value="#{a}"/>
</p:commandLink>
<p:commandLink value=" NOVO" action="#{dadosMB.novo}" ajax="false">
</p:commandLink>
</p:column>
</p:dataTable>
</h:form>
</p>
</h:body>
</html>
Dai tem a pagina de Novo
<?xml version="1.0" encoding="windows-1252"?>
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.prime.com.tr/ui">
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"/>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Cache-Control" content="no-store,No-cache,must-revalidate,post-check=0,pre-check=0,max-age=0"/>
<meta http-equiv="Pragma" content="No-cache"/>
<meta Http-Equiv="Cache-Control" Content="no-cache"/>
<meta http-equiv="Expires" content="-1"/>
<meta content="" HTTP-EQUIV="Refresh"/>
<title>TODO supply a title</title>
</h:head>
<h:body>
<p>
<h:form>
<h:inputHidden value="#{dadosMB.dados.idDados}" id="id"/>
Nome:
<h:inputText value="#{dadosMB.dados.nome}" id="nome"/>
Sobrenome:
<h:inputText value="#{dadosMB.dados.sobrenome}" id="sobrenome"/>
<p:commandButton value="Salvar" action="#{dadosMB.salvar}" ajax="false"/>
</h:form>
</p>
</h:body>
</html>
E o ManagedBean
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package controle;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import modelo.Dados;
/**
*
* @author Fernado
*/
@ManagedBean
@RequestScoped
public class DadosMB {
private Dados dados = new Dados();
private DadosDao dao = new DadosDao();
/** Creates a new instance of DadosMB */
public DadosMB() {
}
public String novo(){
return "Novo.xhtml";
}
public List<Dados> getListar(){
List<Dados> lista = dao.list();
return lista;
}
public String listar(){
return "Listar.xhtml";
}
public String salvar(){
dao.save(dados);
return "Listar.xhtml";
}
public String editar(){
return "Novo.xhtml";
}
public String excluir(){
dao.delete(dados);
return "Listar.xhtml";
}
public Dados getDados() {
return dados;
}
public void setDados(Dados dados) {
this.dados = dados;
}
}
ta tudo funcionando blz
Problema ta só no alterar.
Kra, o seu código me parece corréto. É dessa maneira q eu implemento esse tipo de funcionalidade (±
). Verifique se o problema ñ está no seu DAO ou especifique melhor o q vc quis dizer com
"Quando altero mais de 3 vezes o formulario volta a apresentar os dados de quanto eu alterei a primeira vez ", vai ver fui eu q ñ te entendi.
Já tentei mudar o DAO também e mesmo assim não funcionou…
O erro eh assim…
eu listo os dados…
clico em alterar… ele joga os dados certos no formulario, faço a alteração e salvo…
entao ele atualiza a lista de dados…
mais quando eu clico nessa lista para alterar o mesmo registro…
ele seta no formulario dados antigos… e nao os que tem na lista…
Estou com este problema tambem, você poderia colocar a solução? (já que o tópico está marcado como resolvido…)
Cara eu não me recordo bem o que era…
Mais verifique seu scopo e o equals e hashcode…
qualquer coisa se não for me avisa…