Submit no formulario sem refresh

14 respostas
victormenegusso

Olá, estou precisando fazer um JSP que tenha os campos para a pessoa preencher , como nome, telefone, mas quando for dado o submit nao quero que de refresh, estou utilizando o servidor Jboss.
grato

14 Respostas

victormenegusso
ele no momento esta assim
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<portlet:defineObjects/>
<%= renderRequest.getAttribute("Idade") %>
<%= renderRequest.getAttribute("Nome") %>



<form name="validate" id="validate" action="<portlet:actionURL></portlet:actionURL>" method="post">  
  
<label for="nome">Nome:</label>  
<input type="text" name="nome" />  
  
<label for="idade">Idade:</label>  
<input type="text" name="idade" />  
  
  
<input type="submit" value="Validar" />  
  
</form>
rogelgarcia

O que vc quer… é que se por um acaso… o usuário der um refresh no browser… os dados nao sejam enviados novamente… certo?

Para isso… no seu senvidor… você terá que usar um response.sendRedirect…

Para no browser… a URL atual… ser trocada… entao… se o usuário der um refresh… nao será postado novamente…

victormenegusso

rogelgarcia:
O que vc quer… é que se por um acaso… o usuário der um refresh no browser… os dados nao sejam enviados novamente… certo?

Para isso… no seu senvidor… você terá que usar um response.sendRedirect…

Para no browser… a URL atual… ser trocada… entao… se o usuário der um refresh… nao será postado novamente…

acho que me expressei mal, assim, eu quero que quando o cara aperte o botao que da o submit, a minha pagina nao atualize, ela apenas mande para o portlet a informação

rogelgarcia

Então o que vc quer é um AJAX?

victormenegusso

isso, apenas não estou conseguindo implementar ele usando portlets

rogelgarcia

Eu nao sei exatamente o que muda na utilizacao de portlets… pq nunca usei na verdade…

Mas creio que seria da mesma forma de um sistema normal…

Você terá que usar javascript para fazer isso…

Uma bilioteca como o jQuery pode ajudar…

http://jquery.com/

Tem uma que gosto bastante também … que é a MooTools

http://mootools.net/

victormenegusso

opa vlw vou dar uma olhada cara

rogelgarcia

http://demos.mootools.net/Form.Send

Esse acho que é o exemplo que vc precisa…

Vc vai usar um código mais ou menos assim:

window.addEvent('domready', function() {
	$('myForm').addEvent('submit', function(e) {
		//Prevents the default submit event from loading a new page.
		e.stop();

		//Set the options of the form's Request handler. 
		//("this" refers to the $('myForm') element).
		this.set('send', {onComplete: function(response) { 
			alert('Formulario enviado');
		}});
		//Send the form.
		this.send();
	});
});
victormenegusso

rogelgarcia:
http://demos.mootools.net/Form.Send

Esse acho que é o exemplo que vc precisa

é isso mesmo que eu preciso, vou tentar implementar em aqui no jsp

victormenegusso
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<portlet:defineObjects/>
<script type="text/javascript"> 
function teste()
{
	window.addEvent('domready', function() {  
	    $('validate').addEvent('submit', function(e) {  
	        //Prevents the default submit event from loading a new page.  
	        e.stop();  
	  
	        //Set the options of the form's Request handler.   
	        //("this" refers to the $('myForm') element).  
	        this.set('send', {onComplete: function(response) {   
	            alert('Formulario enviado');  
	        }});  
	        //Send the form.  
	        this.send();  
	    });  
	});  
}
</script> 
<%= renderRequest.getAttribute("Idade") %>
<%= renderRequest.getAttribute("Nome") %>



<form name="validate" id="validate" action="<portlet:actionURL></portlet:actionURL>" method="post">  
  
<label for="nome">Nome:</label>  
<input type="text" name="nome" />  
  
<label for="idade">Idade:</label>  
<input type="text" name="idade" />  
  
  
<input type="submit" value="Validar"/>  
  
</form>

ainda da o refresh

rogelgarcia
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<portlet:defineObjects/>
<script type="text/javascript"> 
	window.addEvent('domready', function() {  
	    $('validate').addEvent('submit', function(e) {  
	        //Prevents the default submit event from loading a new page.  
	        e.stop();  
	  
	        //Set the options of the form's Request handler.   
	        //("this" refers to the $('myForm') element).  
	        this.set('send', {onComplete: function(response) {   
	            alert('Formulario enviado');  
	        }});  
	        //Send the form.  
	        this.send();  
	    });  
	});  
</script> 
<%= renderRequest.getAttribute("Idade") %>
<%= renderRequest.getAttribute("Nome") %>



<form name="validate" id="validate" action="<portlet:actionURL></portlet:actionURL>" method="post">  
  
<label for="nome">Nome:</label>  
<input type="text" name="nome" />  
  
<label for="idade">Idade:</label>  
<input type="text" name="idade" />  
  
  
<input type="submit" value="Validar"/>  
  
</form>

Vc tem que adicionar os includes das biliotecas javascript do mootools tb

victormenegusso

não entendi cara como eu vou adicionar?

rogelgarcia
É melhor vc estudar javascript tb... http://www.w3schools.com/
victormenegusso

rogelgarcia:

É melhor vc estudar javascript tb… http://www.w3schools.com/

nossa é que eu estava com a cabeça a mil no estagio cabei nao me tocando sobre o incluir heheheh, chegando segunda faço o teste, muito obrigado cara

Criado 28 de maio de 2010
Ultima resposta 28 de mai. de 2010
Respostas 14
Participantes 2