[RESOLVIDO]Recarregar página com AJAX

8 respostas
G

Fiz o seguinte código para finalizar um compromisso na minha página jsp. Observem o código logo abaixo de e o link finalizar Agora:

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<html>
<head>
<script type="text/javascript" src="js/jquery.js"></script>
<title>Lista de Compromissos</title>
</head>
<body>
<script type="text/javascript">
function finalizaAgora(id){
	$.get("finalizaCompromisso?id="+id);
}
</script>
<table>
	<tr>
		<th>Id</th>
		<th>Descrição</th>
		<th>Finalizado?</th>
		<th>Data da Finalização</th>
		<th></th>
		<th></th>
	</tr>
	<c:forEach items="${compromissos}" var="compromisso">
		<tr>
			<td>${compromisso.id }</td>
			<td>${compromisso.descricao }</td>
			<c:if test="${compromisso.finalizado eq false}">
				<td>Não Finalizado</td>
			</c:if>
			<c:if test="${compromisso.finalizado}">
				<td>Finalizado</td>
			</c:if>
			<td><fmt:formatDate value="${tarefa.dataFinalizacao.time}"
				pattern="dd/MM/yyyy" /></td>
			<td><a
				href="removeCompromisso?compromisso.id=${compromisso.id }">Remover</a>
			<td><a href="mostraCompromisso?id=${compromisso.id }">Alterar</a>
			<c:if test="${not compromisso.finalizado}">
				<td><a href="#" onclick="finalizaAgora(${compromisso.id})">Finalizar
				agora</a></td>
			</c:if>
		</tr>
	</c:forEach>
</table>
</body>
</html>

Segue a action que que é chamada pela função finaliza do meu java script:

public class FinalizaCompromissoAction {
	private Long id;

	@Action(value = "finalizaCompromisso", results = { @Result(name = "ok", type = "httpheader", params = {
			"status", "200" }) })
	public String execute() {
		System.out.println("Finalizando....");
		new CompromissoDAO().finaliza(id);
		return "ok";
	}

	public void setId(Long id) {
		this.id = id;
	}
}

Tudo está funcionando normalmente, mas gostaria que a página fosse recarregada ao clicar no link Finalizar Agora. Como devo proceder?

8 Respostas

J

usa no JS

window.location.reload()

o codigo acima vai fazer um refresh na pagina, mas se voce quiser ir para

"finalizaCompromisso?id="+id

use isso

document.location.href = "finalizaCompromisso?id="+id;
G

[quote=Jonhkr]usa no JS

window.location.reload()

o codigo acima vai fazer um refresh na pagina, mas se voce quiser ir para

"finalizaCompromisso?id="+id

use isso

document.location.href = "finalizaCompromisso?id="+id;

Seria isso?

function finalizaAgora(id){ $.get("finalizaCompromisso?id="+id); window.location.reload(); }

Pq não deu certo.

J

[quote=ghostnf]

Jonhkr:
usa no JS

window.location.reload()

o codigo acima vai fazer um refresh na pagina, mas se voce quiser ir para

"finalizaCompromisso?id="+id

use isso

document.location.href = "finalizaCompromisso?id="+id;

Seria isso?

function finalizaAgora(id){ $.get("finalizaCompromisso?id="+id); window.location.reload(); }

Pq não deu certo.

ta voce quer que quando clique no botao finalizar ele recarregue a pagina, como se tivesse clicado no botao refresh do navegador ou que carregue a pagina finalizaCompromisso?id=???

G

[quote=Jonhkr]

ghostnf:
Jonhkr:
usa no JS

window.location.reload()

o codigo acima vai fazer um refresh na pagina, mas se voce quiser ir para

"finalizaCompromisso?id="+id

use isso

document.location.href = "finalizaCompromisso?id="+id;

Seria isso?

function finalizaAgora(id){ $.get("finalizaCompromisso?id="+id); window.location.reload(); }

Pq não deu certo.

ta voce quer que quando clique no botao finalizar ele recarregue a pagina, como se tivesse clicado no botao refresh do navegador ou que carregue a pagina finalizaCompromisso?id=???

Quero que chame finalizaCompromisso?id=??? para finalizar a tarefa e em seguida atualize a página para mostrar a listagem com o compromisso finalizado.

J

voce vai ter que usar um ajax assim

// chama a url especificada e apos terminar de carregar chama a funcao
$.get("URL", function(){
    window.location.reload();
});
G

Jonhkr:
voce vai ter que usar um ajax assim

// chama a url especificada e apos terminar de carregar chama a funcao
$.get("URL", function(){
    window.location.reload();
});

SHOW!!! Funcionou!!! Muito obrigado!!! Grande abraço!!

J

ghostnf:
Jonhkr:
voce vai ter que usar um ajax assim

// chama a url especificada e apos terminar de carregar chama a funcao
$.get("URL", function(){
    window.location.reload();
});

SHOW!!! Funcionou!!! Muito obrigado!!! Grande abraço!!

:slight_smile:

A

ghostnf:
Fiz o seguinte código para finalizar um compromisso na minha página jsp. Observem o código logo abaixo de <body> e o link finalizar Agora:

&lt;%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%&gt; &lt;%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%&gt; &lt;html&gt; &lt;head&gt; &lt;script type="text/javascript" src="js/jquery.js"&gt;&lt;/script&gt; &lt;title&gt;Lista de Compromissos&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;script type="text/javascript"&gt; function finalizaAgora(id){ $.get("finalizaCompromisso?id="+id); } &lt;/script&gt; &lt;table&gt; &lt;tr&gt; &lt;th&gt;Id&lt;/th&gt; &lt;th&gt;Descrição&lt;/th&gt; &lt;th&gt;Finalizado?&lt;/th&gt; &lt;th&gt;Data da Finalização&lt;/th&gt; &lt;th&gt;&lt;/th&gt; &lt;th&gt;&lt;/th&gt; &lt;/tr&gt; &lt;c:forEach items="${compromissos}" var="compromisso"&gt; &lt;tr&gt; &lt;td&gt;${compromisso.id }&lt;/td&gt; &lt;td&gt;${compromisso.descricao }&lt;/td&gt; &lt;c:if test="${compromisso.finalizado eq false}"&gt; &lt;td&gt;Não Finalizado&lt;/td&gt; &lt;/c:if&gt; &lt;c:if test="${compromisso.finalizado}"&gt; &lt;td&gt;Finalizado&lt;/td&gt; &lt;/c:if&gt; &lt;td&gt;&lt;fmt:formatDate value="${tarefa.dataFinalizacao.time}" pattern="dd/MM/yyyy" /&gt;&lt;/td&gt; &lt;td&gt;<a >Remover</a> &lt;td&gt;<a >Alterar</a> &lt;c:if test="${not compromisso.finalizado}"&gt; &lt;td&gt;<a >Finalizar agora</a>&lt;/td&gt; &lt;/c:if&gt; &lt;/tr&gt; &lt;/c:forEach&gt; &lt;/table&gt; &lt;/body&gt; &lt;/html&gt;

Segue a action que que é chamada pela função finaliza do meu java script:

public class FinalizaCompromissoAction {
	private Long id;

	@Action(value = "finalizaCompromisso", results = { @Result(name = "ok", type = "httpheader", params = {
			"status", "200" }) })
	public String execute() {
		System.out.println("Finalizando....");
		new CompromissoDAO().finaliza(id);
		return "ok";
	}

	public void setId(Long id) {
		this.id = id;
	}
}

Tudo está funcionando normalmente, mas gostaria que a página fosse recarregada ao clicar no link Finalizar Agora. Como devo proceder?

Agora teria como fazer com que o ajax fizesse a atualização da data da taglib, sem a necessidade de fazer um reload da página?

Andson Gomes

Criado 9 de outubro de 2011
Ultima resposta 18 de jul. de 2012
Respostas 8
Participantes 3