o problema é o seguinte:
estou fazendo uma busca em ajax com o vraptor, hibernate e o DB é mysql.
estou trabalhando em uma página de agendamento, quando escolho a data e o horário dou um submit no form e tudo isso funciona de forma exemplar quando a página é carregada pela primeira vez.
eu faço a busca dos horários em ajax de acordo com a escolha da data selecionada, a busca é bem sucedida, porém, quando faço uma busca de horários na mesma data o horário que eu marquei anteriormente permanece na lista, sendo que, se eu entrar na página novamente (clicando no link) esse horário que já foi escolhido não me é retornado (que é o correto), olho no banco e o cadastro do horário consta de forma correta.
eu já tentei das seguintes formas:
// com result.include("horarios", horarios).forwardTo(this).horariosDisponiveis();
@Get("/horario/horariosDisponiveis")
public void horariosDisponiveis(String data){
List<AteHorario> horarios = null;
setMsg(new ArrayList<String>());
if (!Valida.isEmpty(data)) {
setMsg(horarioBusinessFacade.isDataValida(data));
if (Valida.isEmpty(getMsg())) {
horarios = new ArrayList<AteHorario>();
horarios.addAll(horarioBusinessFacade.consultar("dtDisponivel", data));
for (AteHorario horario : horarios) {
log.info(horario);
}
} else {
result.include("error", getMsg());
}
}
result.include("horarios", horarios).forwardTo(this).horariosDisponiveis();
}
// com result.include("horarios", horarios).redirectTo(this).horariosDisponiveis();
public void horariosDisponiveis(String data){
List<AteHorario> horarios = null;
setMsg(new ArrayList<String>());
if (!Valida.isEmpty(data)) {
setMsg(horarioBusinessFacade.isDataValida(data));
if (Valida.isEmpty(getMsg())) {
horarios = horarioBusinessFacade.consultar("dtDisponivel", data);
for (AteHorario horario : horarios) {
log.info(horario);
}
} else {
result.include("error", getMsg());
}
}
result.include("horarios", horarios).redirectTo(this).horariosDisponiveis();
}
chamada pelo link
public void cadastrar () {
tabelaDePrecosBusinessFacade = new AteServicoBusiness();
agendamentoBusinessFacade = new AteAgendamentoBusiness();
ICadAnimalBusinessFacade animalBusinessFacade = new CadAnimalBusiness();
List<AteServico> servicos = tabelaDePrecosBusinessFacade.consultar(null, null);
List<AteAgendamento> agendamentosConfirmados = agendamentoBusinessFacade.consultar("confirmadosNaoCancelados", null);
List<CadAnimal> animals = new ArrayList<CadAnimal>();
for (AteAgendamento agendamento : agendamentosConfirmados) {
animals.add(agendamento.getAnimal());
}
animalBusinessFacade.buscarNomePessoaAnimal(animals);
result.include("servicos", servicos).include("agendamentos", agendamentosConfirmados);
}
como podem notar eu até criei/sobrecarga um método separado para fazer o redirecionamento;
eu já utilizei o redirectTo;
eu já utilizei o forwardTo;
isso é limitação do framework, do banco ... ou minha ... ??!? não sei o que mais tentar ... se alguém puder dar uma ajuda ... agradeço!