Ajax jquery

0 respostas
F
Boa tarde !!! Estou tentando fazer um exercício de Ajax da apostila fj21 mas, não estou conseguindo alterar o conteúdo via Ajax.Teria que mudar o conteúdo de Finaliza Agora para Finalizado na Lista. Se alguém puder me dar um força. Fico grato. No Spring-Context.xml coloquei a seguinte anotação
<mvc:default-servlet-handler/>
Minha Lista
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script type="text/javascript" src="resources/js/jquery.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<script type="text/javascript">
function finalizaAgora(id) {
$.post("finalizaTarefa", {'id' : id}, function() {
$("#tarefa_"+id).html("Finalizado");
});
}
</script>
	<br />
	<br />
	<a href="novaTarefa">Criar nova tarefa</a>
	<br />
	<br />
	<table border="1">
		<tr>
			<th>Id</th>
			<th>Descrição</th>
			<th>Finalizado ?</th>
			<th>Data de Finalização</th>
			<th>Remover</th>
			<th>Alterar</th>
		</tr>
		<c:forEach items="${tarefas}" var="tarefa">
			<tr id="tarefa_${tarefa.id}">
				<td>${tarefa.id}</td>
				<td>${tarefa.descricao}</td>
				<c:if test="${tarefa.finalizado eq true}">
					<td>Finalizado</td>
				</c:if>
				<c:if test="${tarefa.finalizado eq false}">
				    <td id="tarefa_$(tarefa.id)">
					<a href="#" onClick="finalizaAgora(${tarefa.id})">
							Finalizar Agora !
							</a>
							</td>
				</c:if>
				<td><fmt:formatDate value="${tarefa.dataFinalizacao.time}"
						pattern="dd/MM/yyyy" /></td>

				<td><a href="removeTarefa?id=${tarefa.id}">Remover</a></td>
				<td><a href="mostraTarefa?id=${tarefa.id}">Alterar</a></td>
			</tr>
		</c:forEach>

	</table>
</body>
</html>
Classe Controller
@Controller
public class TarefasController {

	private final JdbcTarefaDao dao;

	@Autowired
	public TarefasController(JdbcTarefaDao dao) {
		this.dao = dao;
	}

	@RequestMapping("novaTarefa")
	public String form() {
		return "tarefa/formulario";

	}
	@RequestMapping("finalizaTarefa")
    public void finaliza(Long id,HttpServletResponse response){
    	dao.finaliza(id);
    	//model.addAttribute("tarefa",dao.buscaPorId(id));
    	//return "tarfa/finaliza";
    	response.setStatus(200);
    	
    }
}
Classe DAO
@Repository
public class JdbcTarefaDao {
	private final Connection connection;
    
	@Autowired
	public JdbcTarefaDao(DataSource dataSource) {
		try {
			this.connection =dataSource.getConnection();
		} catch (SQLException e) {
			throw new RuntimeException(e);
		}
	}

	public void finaliza(Long id) {

		if (id == null) {
			throw new IllegalStateException("Id da tarefa não deve ser nula.");
		}

		String sql = "update tarefas set finalizado = ?, dataFinalizacao = ? where id = ?";
		PreparedStatement stmt;
		try {
			stmt = connection.prepareStatement(sql);
			stmt.setBoolean(1, true);
			stmt.setDate(2, new Date(Calendar.getInstance().getTimeInMillis()));
			stmt.setLong(3, id);
			stmt.execute();
		} catch (SQLException e) {
			throw new RuntimeException(e);
		}
	}

	
}
Criado 17 de agosto de 2014
Respostas 0
Participantes 1