Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Erro ao chamar a pagina HOME.

aparece esse erro (RESUMIDO) : Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback.

Tue Aug 24 12:25:09 GFT 2021 There was an unexpected error (type=Internal Server Error, status=500). An error happened during template parsing (template: "class path resource [templates/home.html]") org.thymeleaf.exceptions.TemplateInputException: An error happened during template parsing (template: "class path resource [templates/home.html]") at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parse(AbstractMarkupTemplateParser.java:241)

Caused by: org.attoparser.ParseException: Exception evaluating SpringEL expression: "pedido.status.name()" (template: "home" - line 22, col 11)
at org.attoparser.MarkupParser.parseDocument(MarkupParser.java:393)

Caused by: org.thymeleaf.exceptions.TemplateProcessingException: Exception evaluating SpringEL expression: "pedido.status.name()" (template: "home" - line 22, col 11)
at org.thymeleaf.spring5.expression.SPELVariableExpressionEvaluator.evaluate(SPELVariableExpressionEvaluator.java:290)

Caused by: org.springframework.expression.spel.SpelEvaluationException: EL1011E: Method call: Attempted to call method name() on null context object
at org.springframework.expression.spel.ast.MethodReference.throwIfNotNullSafe(MethodReference.java:154)

Minha pagina home

    <div class="container">
        <div th:replace="~{base :: titulo('Meus Pedidos')}"></div>

        <nav class="navbar navbar-expand navbar-light bg-light d-flex justify-content-between mb-3">
            <div class="navbar-nav">
                <a th:classappend="${status} == null ? 'active'" class="nav-item nav-link" href="/home">Todos</a>
                <a th:classappend="${status} == 'aguardando' ? 'active'" class="nav-item nav-link" href="/home/aguardando">Aguardando</a>
                <a th:classappend="${status} == 'aprovado' ? 'active'" class="nav-item nav-link" href="/home/aprovado">Aprovado</a>
                <a th:classappend="${status} == 'entregue' ? 'active'" class="nav-item nav-link" href="/home/entregue">Entregue</a>
            </div>
            <a href="/pedido/formulario"><button class="btn btn-outline-secondary my-2 my-sm-0">Novo</button></a>
        </nav>

        <div class="card mb-3" th:each="pedido : ${pedidos}">

            <th:block th:switch="${pedido.status.name()}">
                <div th:case="'AGUARDANDO'" class="card-header alert-warning" th:text="${pedido.nomeProduto}">Nome do Produto</div>
                <div th:case="'APROVADO'" class="card-header alert-success" th:text="${pedido.nomeProduto}">Nome do Produto</div>
                <div th:case="'ENTREGUE'" class="card-header alert-dark" th:text="${pedido.nomeProduto}">Nome do Produto</div>
            </th:block>

            <div class="card-body">
                <div class="row">
                    <div class="col-12 col-sm-8 mb-3">
                        <div class="row ">
                            <div class="col-md-5">Valor: <span th:if="${pedido.valorNegociado} != null" th:text="${'R$ ' + #numbers.formatDecimal(pedido.valorNegociado, 3, 'POINT', 2, 'COMMA')}">200,99</span></div>
                            <div class="col-md-6">Data da entrega: <span th:text="${#temporals.format(pedido.dataDaEntrega, 'dd/MM/yyyy')}">10/02/2020</span></div>
                        </div>

                        <div>Produto</div> 
                        <div> <input class="form-control" th:value="${pedido.urlProduto}" value="url do produto" /></div>

                        <div>Descrição</div>
                        <div>
                            <textarea class="form-control" th:text="${pedido.descricao}">descrição do pedido</textarea>
                        </div>
                    </div>
                    <div class="col-12 col-sm-4">
                        <div>
                            <img class="img-thumbnail" th:src="${pedido.urlImagem}" src="" />
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
1 resposta
solução!

Removi o método .name() da div class="card" e funcionou.

*Ficou assim: *

        <th:block th:switch="${pedido.status}">
            <div th:case="'AGUARDANDO'" class="card-header alert-warning" th:text="${pedido.nomeProduto}">Nome do Produto</div>
            <div th:case="'APROVADO'" class="card-header alert-success" th:text="${pedido.nomeProduto}">Nome do Produto</div>
            <div th:case="'ENTREGUE'" class="card-header alert-dark" th:text="${pedido.nomeProduto}">Nome do Produto</div>
        </th:block>

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