Passar informação do componente para a classe controlle

8 respostas
javaspring
guilhermebhte

Como obter a informação digitada no jsp para o controlle do spring ?

8 Respostas

Weverton_Reis

Assim:

Formulario:

<form action="adicionaX" method="post">
     
     Valor 1: <input name="valor1" type="text">
     Valor 2: <input name="valor2" type="text">

     <input type="submit" value="Adicionar" >
		
</form>

Controller:

@Controller
public class XController {

	@RequestMapping("/adicionaX")
	public String adiciona(X x) {
		
                // X disponivel

		return "pagina-x";
	}

}

Atributos Classe X

private String valor1;
private String valor2;

//Getters e Setters

Espero que te ajude.

guilhermebhte

Desculpe, esqueci de informar.

Não deveria ser via post.

Acho que por ajax seria melhor.

guilhermebhte

Via post, até então está tranquilo.

Weverton_Reis

Boa noite guilherme,

Acho que isso seria já um início pra você entender como funciona:

Controller:

@RequestMapping("/enviarViaAjax")
public void superAjax(Long id, HttpServletResponse response) {
     // id da JSP
     response.setStatus(200);
}

JSP/JS:

(Aqui esta utilizando JQuery)

function chamarViaAjax(id) {

     $.post("enviarViaAjax?id=" + id, function(dadosRetorno) {
          alert('super teste')
     }

}

//Chamada da função javascript

<a href="#" onclick="chamarViaAjax(${x.id})">Teste</a>
guilhermebhte

O que é este response.setStatus(200); ?

guilhermebhte

@Weverton_Reis,

Coloquei assim

<script>
      	jQuery(function($) {
    		function editarPais(id) {
    			alert('super teste');
     		     $.post("editarPais?id=" + id, function(dadosRetorno) {
     		          alert('super teste');
     		     }
    		}
      	});
    </script>

Assim:

<script type="text/javascript">
 	jQuery(function($) {
		function editarPais(id) {
			alert('super teste');
		     $.post("editarPais?id=" + id, function(dadosRetorno) {
		          alert('super teste');
		     }

		}
 	});

e assim:

<script type="text/javascript">
		function editarPais(id) {
			alert('super teste');
		     $.post("editarPais?id=" + id, function(dadosRetorno) {
		          alert('super teste');
		     }
		}
</script>

No jsp que chama alterei para:

Na classe controle não mudei, pois ele dá este erro no navegador,

ReferenceError: editarPais is not defined[Learn More] pais:1:1
onclick http://localhost:9001/desif/pais/:1:1

O que pode estar de errado ?

Weverton_Reis

Significa que sua requisição foi um sucesso.

https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

guilhermebhte

Não entendi.

Fala que não foi definida…

e não aparece o alert(‘super teste’);

Criado 14 de março de 2017
Ultima resposta 17 de mar. de 2017
Respostas 8
Participantes 2