[quote=jaboot]Cara, tenta usar um Tiles da vida ou algo pra te ajudar melhor na camada de visualização:
Assim, de cara, já aponto alguns problemas:
1 - Não é obrigatório, mas no RequestMapping, além do value, é bom utilizar um método de requisição (RequestMethod.GET ou RequestMethod.POST)
2 - Todas as suas chamadas com o RequestMapping tem que ser colocadas a barra (/) antes, tipo ficaria /cadastrousuarios
3 - É de bom tom colocar um @RequestMapping também no seu Controller. Ex.@Controller
@RequestMapping(value = "/usuario")
public class UsuarioController {
4 - Faltou colocar um MapAttribute para o seu form, na sua página.
5 - Não é necessário colocar o lance do .do para acessar suas urls. Isso é coisa de Struts.
Rapidamente
Controller:@Controller
@RequestMapping(value = "/usuario")
public class UsuarioController {
// quando bater na URL /usuário por meio de GET, vai cair aqui e manda um usuário novo para a página
@RequestMapping(method = RequestMethod.GET)
public String list(ModelMap map) {
map.addAttribute("User", new User());
return sua pagina;
}
sua página:[code]<%@ page language=“java” contentType=“text/html; charset=UTF-8” pageEncoding=“UTF-8”%>
<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c”%>
<%@ taglib uri=“http://www.springframework.org/tags/form” prefix=“form”%>
<%@ taglib uri=“http://www.springframework.org/tags” prefix=“spring”%>
<spring:url var=“urlAction” value="/usuario/add" />
...
[/code]
Voltando ao Controller:
[code]@RequestMapping(value = “/add”, method = RequestMethod.POST)
public String addUser(@ModelAttribute(“User”) User user, BindingResult result, ModelMap map, Model model) {
System.out.println(“Nome:” + user.getName());
System.out.println(“Idade:” + user.getAge());
return paginaConfirmação;
}
[/code][/quote]
Galera, graças a Deus e a vcs consegui.
Eu estava estranhando que quando eu chamava o servlet pelo link
http://localhost:8080/transmissor-web/cadastroUsuario.do
Chegava tranquilo no método, mas quando eu chamada de dentro da jsp que ficava em /pages/intranet, a url mudava para
http://localhost:8080/transmissor-web/pages/intranet/cadastroUsuario.do
e assim gerava o erro 404.
Com a dica de vcs eu coloquei um @RequestMapping na classe tb que ficou assim:
[code]@Controller
@RequestMapping(value="/pages/intranet")
public class UsuarioController {
@RequestMapping(value="/teste", method = RequestMethod.POST)
public String cadastrar(Usuario usuario) {
System.out.println(usuario);
return "cadastroSistema";
}
}[/code]
Ai ele reconheceu legal.
Obrigado mesmo galera.