Não estou conseguindo fazer algo q me parece básico…alguem me ajuda?
Preciso adicionar um item na lista porém sem o refresh da página…do jeito q está, ao clicar no botão do form ele faz o submit e adiciona corretamente, porem é feito o refresh…parece q o AJAX não está funcionando perfeitamente…alguem pode dar uma ajuda…por favor.
Abaixo estão os codigos q utilizei
form.jsp
[code]<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c”%>
<%@ taglib uri=“http://www.springframework.org/tags/form” prefix=“form”%>
<form:form method=“post” action="/pessoa/ajax/listaPessoas.shtml" modelAttribute=“pessoa” id=“pessoa-formulario” >
<form:label path=“nome”>Nome</form:label> | <form:input path=“nome” /> |
<form:label path=“nascimento”>Data de nascimento</form:label> | <form:input path=“nascimento” /> |
</form:form>[/code]
lista.jsp
[code]<%@page pageEncoding=“UTF-8” %>
<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>
<%@ taglib uri=“http://java.sun.com/jsp/jstl/fmt” prefix=“fmt” %>
Id | Nome | Nascimento | |
---|---|---|---|
-Remover |
index.jsp
[code]<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>
<%@ taglib uri=“http://www.springframework.org/tags/form” prefix=“form” %>
$(document).ready(function(){
$.ajax({
type:"GET",
url:'listaPessoas.shtml',
data:$("#pessoa-formulario").serialize(), // serializes the form's elements.
success:function(response) {
$('#lista-pessoas').html(response);
}
});
$.ajax({
type:"POST",
url:'criar.shtml',
data:$("#pessoa-formulario").serialize(), // serializes the form's elements.
success:function(response) {
$('#form-pessoas').html(response);
}
});
return false;
});
</script>
[/code]
e finalmente meu Controller
[code]@Controller
@RequestMapping("/pessoa/ajax")
public class PessoaAjaxController {
private PessoaDAO pessoaDAO;
@Autowired
public PessoaAjaxController(PessoaDAO pessoaDAO) {
this.pessoaDAO = pessoaDAO;
}
@RequestMapping("/index")
public String index() {
return "/pessoa/ajax/index";
}
@RequestMapping("/listaPessoas")
public String getPessoas(Model model) {
model.addAttribute("pessoas", pessoaDAO.findAll());
return "/pessoa/ajax/lista";
}
@RequestMapping("/criar")
public String novo(Model model) {
model.addAttribute("pessoa", new Pessoa());
return "/pessoa/ajax/form";
}
@RequestMapping("/alterar/{id:\\d+}")
public String alterar(@PathVariable Long id, Model model) {
model.addAttribute("pessoa", pessoaDAO.findById(id));
return "/pessoa/ajax/form";
}
@RequestMapping(method=RequestMethod.POST, value="/listaPessoas")
public String salvarAlteracao(@ModelAttribute("pessoa") Pessoa pessoa, Model model){
pessoaDAO.save(pessoa);
return "/pessoa/ajax/index";
}
@RequestMapping("/remover/{id:\\d+}")
public String remover(@PathVariable Long id, Model model) {
pessoaDAO.delete(id);
return getPessoas(model);
}
}[/code]