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

Erro ao utilizar a taglib form

No exercício de tornar a url de um form dentro de uma jsp o Eclipse aponta um erro, apesar de funcionar corretamente.

O erro é: The method getBuild() is undefined for the type MvcUriComponentsBuilder.MethodArgumentBuilder. O erro fica na instrução ${s:mvcUrl('PC#grava').build() onde fica grifado build().

Abaixo está o código da jsp:

<%@ 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="s" %>

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Cadastre um novo produto</title>
</head>
<body>

<form:form action="${s:mvcUrl('PC#grava').build() }" method="post" commandName="produto">

    <div>
        <label>Título</label>
        <input type="text" name="titulo">
        <br>
        <form:errors path="titulo"/>
    </div>

    <div>
        <label>Sinopse</label><br>
        <textarea rows="20" cols="40" name="sinopse"></textarea>
        <br>
        <form:errors path="sinopse"/>
    </div>

    <div>
        <label>Páginas</label>
        <input type="text" name="paginas">
        <br>
        <form:errors path="paginas"/>
    </div>

    <c:forEach items="${tiposPreco}" var="tipoPreco" varStatus="status">
        <div>
            <label>${tipoPreco}</label>
            <input type="text" name="precos[${status.index}].valor">
            <input type="hidden" name="precos[${status.index}].tipo" value="${tipoPreco }">
        </div>
    </c:forEach>
    <br>

    <button type="submit">Cadastrar</button>

<!-- Na tag form foi trocado a URL fixa por uma dinâmica que aponta para o método grava da classe ProdutosController('PC#grava') -->
<!-- Apesar do eclipse estranhar a expressão "${s:mvcUrl('PC#grava').build() }", tudo funciona normalmente -->

</form:form>

</body>
</html>
3 respostas
solução!

Boa tarde Joacir,

Isso é por que o Eclipse em sí não reconhece esse comando que é especifico do Spring e marca ele como um erro. Todo link que fizer dessa forma vai constar como erro no Eclipse, mas pode ficar tranquilo que não vai influenciar no seu projeto.

Abraço

Poxa, mas isso é muito feio. O eclipse começa a encher de erros e quando aparece um erro de verdade não prestamos atenção.

Não existe solução para isso?

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