Spring enviar data retornada pelo dao pra outra página

1 resposta
andreacerqueira

meu metodo finaliza() dá um update no banco e um return com a data do update.
estou tetando passar essa data pra um javascript e assim atualizar a data da página, mas tô perdida.
tipo o controller faz isso:

@RequestMapping("finalizaTarefa") public void finaliza(Long id, HttpServletResponse response, Model model) { TarefaDAO dao = new TarefaDAO(); //dao.finaliza(id); model.addAttribute("tarefas", dao.finaliza(id)); response.setStatus(200); }

meu DAO tá assim:

public Date finaliza(Long id) { try { Calendar calendar = Calendar.getInstance(); // pega a data atual Date data = new Date(calendar.getTimeInMillis()); String sql = "UPDATE tarefas SET finalizado=?, dataFinalizacao=? WHERE id=?"; PreparedStatement stmt = connection.prepareStatement(sql); stmt.setInt(1, 1); stmt.setDate(2, data); stmt.setLong(3, id); stmt.execute(); stmt.close(); System.out.println("TAREFA FINALIZADA COM SUCESSO!"); return data; } catch (SQLException e) { throw new RuntimeException(e); } }

se alguém puder me ajudar a começar eu agradeço :wink:

1 Resposta

andreacerqueira
fiz assim:
@RequestMapping("finalizaTarefa")
	public void finaliza(Long id, HttpServletResponse response, Model model) throws IOException { // tipo Model vem do Spring
		Calendar calendar = Calendar.getInstance(); // pega a data atual
		Date data = new Date(calendar.getTimeInMillis());
		
		TarefaDAO dao = new TarefaDAO();
		//dao.finaliza(id);
		model.addAttribute("tarefas", dao.finaliza(id));
		response.setStatus(200);
		response.getWriter().println(data);
	}
mas dessa forma eu retorno a data que pego na hora que inicio o finaliza() do controlller e não a data que o metodo da DAO finaliza() me retorna:
public Date finaliza(Long id) {
    	try {
    		Calendar calendar = Calendar.getInstance(); // pega a data atual
    		Date data = new Date(calendar.getTimeInMillis());
    		String sql = "UPDATE tarefas SET finalizado=?, dataFinalizacao=? WHERE id=?";
            PreparedStatement stmt = connection.prepareStatement(sql);
            stmt.setInt(1, 1);
            stmt.setDate(2, data);
            stmt.setLong(3, id);
            stmt.execute();
            stmt.close();
            System.out.println("TAREFA FINALIZADA COM SUCESSO!");
            return data;
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }
ahhh o js tá assim:
function finalizaTarefa(id) {
    $.post("finalizaTarefa", {'id' : id}, function(data) {
    	$("#tarefa_data_" + id).html(data);
    });
}
Criado 5 de maio de 2012
Ultima resposta 5 de mai. de 2012
Respostas 1
Participantes 1