Pessoal,
Estou precisando que após o preenchimento de um formulário, caso haja algum erro de validação e no momento do retorno a mesma página do formulário, as informações anteriormente digitadas sejam carregadas de volta. Tentei jogar o objeto para a session, e consegui, porém quando tem alguma invalidação ele não gava a informação. Espero que alguém possa me ajudar!
Estou colocando o código do componente de lógica e o modelo abaixo para facilitar:
@Component(“programa”)
@InterceptedBy( { AutorizadorInterceptor.class, DaoInterceptor.class })
public class ProgramaLogic {
private final DaoFactory daoFactory;
@In(scope = ScopeType.SESSION, key = "programa", required = false)
@Out(scope = ScopeType.SESSION, key = "programa")
private Programa programa;
private List<Programa> programas;
public ProgramaLogic(DaoFactory daoFactory) {
this.daoFactory = daoFactory;
}
// formulario para adicao
public void formulario() {
}
// formulario para edicao
public void editar(Programa programa) {
// carrega os dados no banco para edicao
this.programa = (Programa) this.daoFactory.getProgramaDao().procura(
programa.getId());
}
// Adiciona um programa novo ou atualiza se for edicao
public void armazena(Programa programa) {
this.programa = programa; // Armazena na session o que foi digitado
programa = this.valida(programa); // Chama o método para validação
this.daoFactory.beginTransaction(); // Inicia a inclusão no Banco
this.daoFactory.getProgramaDao().atualiza(programa);
this.daoFactory.commit(); // Finaliza a inclusão no Banco
this.programa = null; // Destroy a session
}
// Valida todos os parâmetros do instância programa
@Validate(params = { "programa" })
public Programa valida(Programa programa) {
return programa;
}
// remove um programa
public void remove(Programa programa) {
this.daoFactory.beginTransaction();
this.daoFactory.getProgramaDao().remove(programa);
this.daoFactory.commit();
}
// lista todos os programas
public void lista() {
this.programas = this.daoFactory.getProgramaDao().listaTudo();
}
// getter pro programa
public Programa getPrograma() {
// if (tPrograma.getId() != null)
// programa = tPrograma;
return programa;
}
// getter pra lista de programas
public List<Programa> getProgramas() {
return programas;
}
}
@Entity
public class Programa {
@Id
@GeneratedValue
private Short id;
@Length(max = 20)
private String titulo;
@Length(max = 50)
private String descricao;
private char status;
private Calendar dtInicio;
private Calendar dtPrevTermino;
private Calendar dtTermino;
private int qtdeMaxProjetos;
...getters e setters...
}
Abraços!
João Attila
