Quando tento editar um produto ou mesmo acessar o cadastro de produto explode esse erro (resumido):
GRAVE: Servlet.service() for servlet [jsp] threw exception
java.lang.IllegalArgumentException: Mapping not found: cadastraProduto
at org.springframework.web.servlet.mvc.method.annotation.MvcUriComponentsBuilder.fromMappingName(MvcUriComponentsBuilder.java:463)
at org.springframework.web.servlet.mvc.method.annotation.MvcUriComponentsBuilder.fromMappingName(MvcUriComponentsBuilder.java:433)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
GRAVE: Servlet.service() for servlet [dispatcher] in context with path [/projeto-jpa] threw exception [javax.el.ELException: Problems calling function [spring:mvcUrl]] with root cause
java.lang.IllegalArgumentException: Mapping not found: cadastraProduto
at org.springframework.web.servlet.mvc.method.annotation.MvcUriComponentsBuilder.fromMappingName(MvcUriComponentsBuilder.java:463)
at org.springframework.web.servlet.mvc.method.annotation.MvcUriComponentsBuilder.fromMappingName(MvcUriComponentsBuilder.java:433)
Eu já troquei no form para ficar com ${spring:mvcUrl('PC#cadastraProduto').build()} e também já tentei a rota /projeto-jpa/cadastraPoduto e trocar de form para a taglib form:form . Nada funcionou.
Link do GitHub:https://github.com/ErivanJunior275/JPA-e-Hibernate
Linha do form apontanda no erro
<form:form action="${spring:mvcUrl('cadastraProduto').build()}" method="">
ProdutoController envolvido
@Controller
@RequestMapping("/produto")
public class ProdutoController {
@Autowired
private ProdutoDao produtoDao;
@Transactional
@RequestMapping(method=RequestMethod.POST, name="cadastraProduto")
public String cadastraProduto(@ModelAttribute @Valid Produto produto, BindingResult result, RedirectAttributes atts) {
if(result.hasErrors()) {
return form(produto);
}
produtoDao.insere(produto);
return "redirect:/";
}
@RequestMapping(value="/form", method=RequestMethod.GET)
public String form(Produto produto) {
return "produto/form";
}
@RequestMapping(value="/{id}/form", method=RequestMethod.GET)
public String update(@PathVariable Integer id, Model model) {
Produto produto = produtoDao.getProduto(id);
model.addAttribute("produto", produto);
return form(produto);
}
@RequestMapping("/{id}")
public String detalhe(@PathVariable Integer id, Model model) {
Produto produto = produtoDao.getProduto(id);
model.addAttribute("produto", produto);
return "produto/detalhe";
}
@RequestMapping(value="/buscar", method=RequestMethod.POST, name="buscarProdutos")
public String buscarPor(Model model,
@RequestParam String nome,
@RequestParam Integer categoriaId,
@RequestParam(required=false) Integer lojaId) {
List<Produto> produtos = produtoDao.getProdutos(nome, categoriaId, lojaId);
model.addAttribute("produtos", produtos);
return "home";
}
}