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

${s:mvcUrl('PC#finalizar()').build()}

Boa Noite, estou com um poblema na minha pagina de intens.jsp. Quando Coloco o form.

<form action="${s:mvcUrl('PC#finalizar()').build()}" method="post">
    <input type="submit" class="checkout" name="checkout" value="Finalizar compra" />
</form>

Aparece o seguinte erro na JSP org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/views/carrinho/itens.jsp at line 133 Já fiz a importação

<%@ taglib uri="http://www.springframework.org/tags" prefix="s"%>

Já veriquei no forum, tem um duvida de nosso colega que é bem parecida. https://cursos.alura.com.br/forum/topico--s-mvcurl-pc-grava-build-21033 , já tentei seguir as tentativas de solução mais sem sucesso.

Obs: isso está acontecendo para qualquer tag na tela itens.jsp que tem essa tag.

${s:mvcUrl('CCC#intens').build() }
${s:mvcUrl('PC#finalizar()').build()}

Não sei o que está acontecendo.

8 respostas
solução!

Fala aí Giovanni, tudo bem?

Cara aparentemente está certo, mas eu tentaria retirar o () após o finalizar: ${s:mvcUrl('PC#finalizar').build()}

Veja se isso funciona.

Oi Fernando, Funcionou Obrigado! Mais a minha outra tag não funciona ${s:mvcUrl('CCC#intens').build() }

Já tentei Colocando ( ) mais não funcionou.

<a href="${s:mvcUrl('CCC#intens').build() " rel="nofollow">
    Seu Carrinho (${carrinhoCompras.quantidade})
</a>

Nesse exemplo que você mandou está faltando fechar a chave depois do build().

Consegue confirmar se está fechando essa chave no seu código, por favor?

Oi Fernando Coloquei o codigo errado, mais o certo seria esse, mesmo assim da erro.

<a href="${s:mvcUrl('CCC#intens').build() }" rel="nofollow">
    Seu Carrinho (${carrinhoCompras.quantidade})
</a>

Ah tah,

Manda o código do controller por favor.

Ah blz.

package br.com.casadocodigo.loja.controllers;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.servlet.ModelAndView;

import br.com.casadocodigo.loja.daos.ProdutoDAO;
import br.com.casadocodigo.loja.models.CarrinhoCompras;
import br.com.casadocodigo.loja.models.CarrinhoItem;
import br.com.casadocodigo.loja.models.Produto;
import br.com.casadocodigo.loja.models.TipoPreco;



@Controller
@RequestMapping("/carrinho")
@Scope(value=WebApplicationContext.SCOPE_REQUEST)
public class CarrinhoComprasController {

    @Autowired
    private ProdutoDAO produtoDAO;

    @Autowired
    private CarrinhoCompras carrinho;

    @RequestMapping("/add")
    public ModelAndView add(Integer produtoId, TipoPreco tipo) {
        ModelAndView modelAndView = new ModelAndView("redirect:/carrinho");
        CarrinhoItem carrinhoItem = criaItem(produtoId, tipo);

        carrinho.add(carrinhoItem);

        return modelAndView;
    }

    @RequestMapping(method=RequestMethod.GET)
    public ModelAndView itens(){
        return new ModelAndView("/carrinho/itens");
    }


    private CarrinhoItem criaItem(Integer produtoId, TipoPreco tipoPreco) {
        Produto produto = produtoDAO.find(produtoId);
        CarrinhoItem carrinhoItem = new CarrinhoItem(produto, tipoPreco);

        return carrinhoItem;
    }
}

Tente colocar exatamente isso aqui por favor : ${s:mvcUrl('CCC#itens').build()}

Obrigado funcionou, percebi que nessa tag eu estava digitando errado.