Ao tentar salvar um produto, ele não encontra o controller ao utilizar o recurso spring:mvcUrl, e direciona para uma url sem coerênca. Url que ele direciona: http://localhost:8080/gerenciador-negocios/WEB-INF/views/produto/cadastro.jsp/produto/
Meu controler:
package br.com.gerenciador.negocios.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
import br.com.gerenciador.negocios.model.Produto;
@Controller
@RequestMapping("/produto")
public class ProdutoController {
@RequestMapping(value="/cadastro", method = RequestMethod.GET)
public ModelAndView form(Produto produto) {
return new ModelAndView("/produto/cadastro");
}
@RequestMapping(method = RequestMethod.POST)
public ModelAndView salvar(Produto produto) {
System.out.println(produto.toString());
return new ModelAndView("redirect:/produto");
}
}
Minha página:
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@taglib uri="http://www.springframework.org/tags" prefix="spring"%>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<%@taglib tagdir="/WEB-INF/tags" prefix="tags"%>
<tags:page title="Cadastro Produto" bodyClass="">
<jsp:body>
<div class="col-12 col-md-9 pull-md-3 bd-content">
<div class="jumbotron">
<form:form action="${spring:mvcUrl('PC#salvar').build() }" method="post" commandName="produto">
<div class="form-group">
<label for="inputDescricao">Descrição</label>
<form:input path="descricao" class="form-control"/>
</div>
<div class="form-group">
<label for="inputPeso">Peso</label>
<form:input path="peso" class="form-control"/>
</div>
<div class="form-group">
<label for="inputCaracteristica">Caracteristicas</label>
<form:textarea path="caracteristicas" rows="3" class="form-control"/>
</div>
<div>
<button type="submit" class="btn btn-primary">Enviar</button>
</div>
</form:form>
</div>
</div>
</jsp:body>
</tags:page>
A estrutura das pastas estão corretas.