Boa tarde galera, estou fazendo uns execícios de java e agarrei na parte de editar os valores já conseguir fazer funcionar verificando com o debug os valores atualizados na lista partidas, agora não sei por que não consigo mais retornar os valores da página.
As outras partes estão funcionando mas, quando eu mando editar o valor a lista de partidas não está atualizado mais os valores.
Alguém pode me ajudar?
Segue o bean:
package controle;
import java.sql.Timestamp;
import java.util.List;
import javax.enterprise.context.ApplicationScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.inject.Inject;
import javax.inject.Named;
import modelo.PartidaRepository;
import modelo.TimeRepository;
import entidades.Partida;
import entidades.Time;
@Named("partidaMB")
@ApplicationScoped
public class PartidaMB {
@Inject
private Partida partida;
private Long timeDaCasaID;
private Long timeVisitanteID;
private List<Partida> partidas;
@Inject
private TimeRepository timeRepository;
@Inject
private PartidaRepository partidaRepository;
public String adiciona() {
Time timeDaCasa = timeRepository.procura(this.getTimeDaCasaID());
this.getPartida().setTimeDaCasa(timeDaCasa);
Time timeVisitante = timeRepository.procura(this.getTimeVisitanteID());
this.getPartida().setTimeVisitante(timeVisitante);
this.getPartida().setGolsTimeDaCasa(0);
this.getPartida().setGolsTimeVisitante(0);
this.getPartida().setDataPartida(getCurrentTimeStamp());
partidaRepository.adiciona(this.getPartida());
this.setPartida(new Partida());
return null;
}
private Timestamp getCurrentTimeStamp() {
java.sql.Timestamp currentDate = new java.sql.Timestamp(
new java.util.Date().getTime());
return currentDate;
}
public String edit(ActionEvent event) {
Long id = Long.parseLong(FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("id"));
System.out.println(this.partidas); [b][color=red]//Se eu alterar qualquer placar ele continua pegando os valores antigos.[/color][/b]
for(Partida p: this.partidas){
if(p.getId()==id){
this.partida = p;
}
}
partidaRepository.update(this.partida);
return null;
}
public List<Partida> getPartidas() {
if (partidas == null) {
this.partidas = partidaRepository.recuperaPartidas();
}
return this.partidas;
}
public void setPartidas(List<Partida> partidas) {
this.partidas = partidas;
}
public void setPartida(Partida partida) {
this.partida = partida;
}
public Partida getPartida() {
return partida;
}
public void setTimeDaCasaID(Long timeDaCasaID) {
this.timeDaCasaID = timeDaCasaID;
}
public Long getTimeDaCasaID() {
return timeDaCasaID;
}
public void setTimeVisitanteID(Long timeVisitanteID) {
this.timeVisitanteID = timeVisitanteID;
}
public Long getTimeVisitanteID() {
return timeVisitanteID;
}
}
Página:
<h:body>
<h3 class="titulo">Partidas</h3>
<h:dataTable id="tabela" value="#{partidaMB.partidas}" var="partida"
styleClass="tabela">
<h:column>
<f:facet name="header">
<h:outputText value="Id" />
</f:facet>
<h:outputText value="#{partida.id}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Data" />
</f:facet>
<h:outputText value="#{partida.dataPartida}">
<f:convertDateTime pattern="dd/MM/yyyy" />
</h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Time da Casa" />
</f:facet>
<h:outputText value="#{partida.timeDaCasa.nome}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Placar" />
</f:facet>
<h:inputText id="golsTimeDaCasa" size="1"
value="#{partida.golsTimeDaCasa}">
</h:inputText>
<h:outputText value=" X "/>
<h:inputText id="golsTimeVisitante" size="1"
value="#{partida.golsTimeVisitante}">
</h:inputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Time Visitante" />
</f:facet>
<h:outputText value="#{partida.timeVisitante.nome}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Editar" />
</f:facet>
<h:commandLink actionListener="#{partidaMB.edit}" value="Editar">
<f:param name="id" value="#{partida.id}" />
<f:ajax action="click" render="@form" />
</h:commandLink>
</h:column>
</h:dataTable>
</h:body>
Já procurei muito sobre o jsf e ainda não conseguir entender onde que está o erro, alguém pode me falar o que eu estou vacilando.
Grato.