[RESOLVIDO]Recarregar página com AJAX

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:

[code]
<%@taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core”%>
<%@taglib prefix=“fmt” uri=“http://java.sun.com/jsp/jstl/fmt”%>

Lista de Compromissos
Id Descrição Finalizado? Data da Finalização
${compromisso.id } ${compromisso.descricao } Não Finalizado Finalizado Remover Alterar Finalizar agora
[/code]

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?

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;

[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.

[quote=ghostnf][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.[/quote]

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=???

[quote=Jonhkr][quote=ghostnf][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.[/quote]

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=???[/quote]

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

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();
});

[quote=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();
});

[/quote]

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

[quote=ghostnf][quote=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();
});

[/quote]

SHOW!!! Funcionou!!! Muito obrigado!!! Grande abraço!![/quote]

:slight_smile:

[quote=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?[/quote]

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