Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Problema no ${s:mvcUrl('PC#gravar').build()

Ao inserir ${s:mvcUrl('PC#gravar').build() tenho o seguinte erro:

The method getBuild() is undefined for the type MvcUriComponentsBuilder.MethodArgumentBuilder

Notei tbm que ao testar cadastrar um produto em branco minha url fica da seguinte forma: http://localhost:8080/casadocodigo/produtos/%7Bs:mvcUrl('PC#gravar').build()}

<form:form action="${s:mvcUrl('PC#gravar').build() }" method="post" commandName="produto">
        <div>
            <form:errors path="titulo" />
                        <label for="titulo">Titulo</label>

            <input type="text" name="titulo" id="titulo"/>
        </div>
        <div>
            <form:errors path="descricao" />
            <label for="descricao">Descricao</label>
            <textarea rows="10" cols="20" name="descricao" id="descricao"></textarea>
        </div>

        <div>
            <form:errors path="numeroPaginas" />
            <label for="numeroPaginas">Numero de paginas</label>
            <input type="text" name="numeroPaginas" id="numeroPaginas"/>
        </div>



        <c:forEach items="${tipos }" var="tipoPreco" varStatus="status">
            <div>
                <label for="">${ tipoPreco }</label>
                <input type="text" name="precos[${status.index}].valor" id="precos"/>
                <input type="hidden" name="precos[${status.index}].tipo" value="${ tipoPreco }">
            </div>
        </c:forEach>
        <div>
            <input type="submit" value="Enviar">
        </div>
 </form:form>
3 respostas

Minha classe do ProdutoController



@Controller
@RequestMapping("/produtos")
public class ProdutosController {

    @Autowired
    private ProdutoDAO produtoDao;

    @InitBinder
    public void InitBinder(WebDataBinder binder){
        binder.addValidators(new ProdutoValidation());
    }

    @RequestMapping("form")
    public ModelAndView form(){
        ModelAndView modelAndView=new ModelAndView("/produtos/form");
        modelAndView.addObject("tipos",TipoPreco.values() );

        return modelAndView;
    }

    @RequestMapping(method=RequestMethod.GET)  //lista
    public ModelAndView listar(){
    List<Produto> produtos= produtoDao.listar();
    ModelAndView modelAndView = new ModelAndView("produtos/lista");
    modelAndView.addObject("produtos", produtos);

    return modelAndView;
    }

    @RequestMapping(method=RequestMethod.POST,name="gravarProduto")
    public ModelAndView gravar(@Valid Produto produto, BindingResult result,  RedirectAttributes redirectAttributes){
        if(result.hasErrors()){
            return form();
        }
        produtoDao.gravar(produto);
        redirectAttributes.addFlashAttribute("sucesso","Produto cadastrado com sucesso");
        return new ModelAndView("redirect:produtos");
    }
}
solução!

Consegui corrigir o erro.

Olá, estou com o mesmo erro, como conseguiu?

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software