Olá boa noite.
Prezados estou tendo um problema no meu projeto, no MB usando @SessionScoped os dados persistem, quando mudo para @View
não ocorre nenhum erro, nenhuma excessão mais, os dados não persistem
A Causa de mudar foi que com Session apos inserir o primeiro registro, ao tentar inserir o segundo os dados ou melhor os componentes vinham preenchidos
com os dados anteriores, se alterasse este comportamento também ocorria então mudei para View e ganhei outro problema, so que este sem erro, sem mensagens
nada no log.
O Projeto usa JSF, Spring 3 + Security, JPA, Primefaces
As telas, dei uma incrementada nelas vendo o projeto do Sr. Hebert
http://uaihebert.com/?p=1414
vou colocar abaixo alguns trechos do código
@ManagedBean(name="estadoC")
@ViewScoped
public class EstadoController extends AbstractMB implements Serializable {
private static final long serialVersionUID = 1L;
private Estado estado;
private Estado estadoSelecionado;
private List<Estado> estadoLista;
private int totalRegistros;
@ManagedProperty(value = "#{estadoService}")
private EstadoService estadoService;
public void setEstado(Estado estado) {
this.estado = estado;
}
public Estado getEstado() {
if ( estado == null ) {
estado = new Estado();
}
return estado;
}
public void setEstadoService(EstadoService estadoService) {
this.estadoService = estadoService;
}
public EstadoService getEstadoService() {
return estadoService;
}
public void setEstadoLista(List<Estado> estadoLista) {
this.estadoLista = estadoLista;
}
public List<Estado> getEstadoLista() {
if ( estadoLista == null) {
loadEstados();
}
return estadoLista;
}
public void setTotalRegistros(int totalRegistros) {
this.totalRegistros = totalRegistros;
}
public int getTotalRegistros() {
return totalRegistros;
}
public void preparaInclusao() {
estado = new Estado();
}
public void gravar() {
try {
this.estadoService.update(estado);
closeDialog();
displayInfoMessageToUser("Registro criado com sucesso!");
loadEstados();
preparaInclusao();
} catch (Exception e) {
keepDialogOpen();
displayErrorMessageToUser("Ocorreu um erro ao atualizar o registro");
e.printStackTrace();
}
}
private void loadEstados() {
estadoLista = estadoService.findAll();
}
public void excluir() {
try {
this.estadoService.delete(estado);
closeDialog();
displayInfoMessageToUser("Registro excluido com sucesso!");
loadEstados();
preparaInclusao();
} catch (Exception e) {
keepDialogOpen();
displayErrorMessageToUser("Ocorreu um erro ao tentar excluir o registro");
e.printStackTrace();
}
}
public SelectItem[] getItemsAvailableSelectOne() {
return FacesUtil.getSelectItems(estadoService.findAll(), true);
}
public Estado getEstadoSelecionado() {
if ( estadoSelecionado == null ) {
estadoSelecionado = new Estado();
}
return estadoSelecionado;
}
public void setEstadoSelecionado(Estado estadoSelecionado) {
this.estadoSelecionado = getEstadoService().findByID(estadoSelecionado.getIdEstado());
}
public void resetEstadoSelecionado() {
estadoSelecionado = new Estado();
}
@FacesConverter(forClass = Estado.class)
public static class EstadoControllerConverter implements Converter {
public Object getAsObject(FacesContext facesContext, UIComponent component, String value) {
if (value == null || value.length() == 0) {
return null;
}
}