JSP que chama o controller, através do link Carrinho.
<header id="layout-header">
<div class="clearfix container">
<a href="/" id="logo"> </a>
<div id="header-content">
<nav id="main-nav">
<ul class="clearfix">
<li><a href="${s:mvcUrl('CCC#itens').build() }" rel="nofollow">Carrinho (${carrinhoCompras.quantidade })</a></li>
<li><a href="/pages/sobre-a-casa-do-codigo" rel="nofollow">Sobre Nós</a></li>
<li><a href="/pages/perguntas-frequentes" rel="nofollow">Perguntas Frequentes</a></li>
</ul>
</nav>
</div>
</div>
</header>
@Controller controller
@RequestMapping("/carrinho")
@Scope(value=WebApplicationContext.SCOPE_REQUEST)
public class CarrinhoComprasController {
@Autowired
private ProdutoDAO produtoDao;
@Autowired
private CarrinhoCompras carrinho;
@RequestMapping(method=RequestMethod.GET)
public ModelAndView itens(){
return new ModelAndView("carrinho/itens");
}
@RequestMapping("/add")
public ModelAndView add(Integer produtoId, TipoPreco tipoPreco) {
ModelAndView modelAndView = new ModelAndView("redirect:/carrinho");//No frontend code 202 o carrinho redireciona para a raiz desse controller / carrinho que procura o metodo GET
CarrinhoItem carrinhoItem = criaItem(produtoId,tipoPreco);
carrinho.add(carrinhoItem);
return modelAndView;
}
private CarrinhoItem criaItem(Integer produtoId, TipoPreco tipoPreco) {
Produto produto = produtoDao.procurar(produtoId);
CarrinhoItem carrinhoItem = new CarrinhoItem(produto, tipoPreco);
return carrinhoItem;
}
@RequestMapping("/remover")
public ModelAndView remover(Integer produtoId, TipoPreco tipoPreco) {
carrinho.remover(produtoId, tipoPreco);
return new ModelAndView("redirect:/carrinho");
}
}