Olá,
Estou tentando replicar o projeto do Curso Spring MVC I: Criando aplicações web para um projeto Spring Boot. Na aula 11 há código abaixo:
@Bean
public InternalResourceViewResolver internalResourceViewResolver(){
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".jsp");
resolver.setExposedContextBeanNames("carrinhoCompras");
return resolver;
}
Eu consegui configurar o setPrefix e setSuffix no application.properties. Porém o setExposedContextBeanNames("carrinhoCompras") não consegui configurar.
Há um jeito Spring Boot para disponibilizar o método do classe @Component para o view no JSP?
O método se encontra no classe abaixo:
@Component
public class CarrinhoCompras {
private Map<CarrinhoItem, Integer> itens = new LinkedHashMap<CarrinhoItem, Integer>();
public void add(CarrinhoItem item) {
itens.put(item, getQuantidade(item) + 1);
}
private int getQuantidade(CarrinhoItem item) {
if(!itens.containsKey(item)) {
itens.put(item, 0);
}
return itens.get(item);
}
public int getQuantidade(){
System.out.println("Quantidade dos itens no carrinho");
return itens.values().stream().reduce(0, (proximo, acumulador) -> (proximo + acumulador));
}
}
Preciso disponibilizar a quantidade de itens no carrinho através de getQuantidade() no detalhe.jsp
<li><a href="/carrinho" rel="nofollow">Seu Carrinho (${carrinhoCompras.quantidade})</a></li>