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

fmt:param não funciona

Estou obtendo um erro ao tentar utilizar o fmt:param para inserir o valor na mensagem do bundle.

Fiz igualzinho o exemplo do vídeo, no entanto recebo um Status 500 com a mensagem:

javax.servlet.ServletException: javax.servlet.jsp.JspException: org.apache.jasper.JasperException: /WEB-INF/views/cabecalho.jsp (line: [18], column: [28]) According to TLD or attribute directive in tag file, attribute [value] does not accept any expressions

Segue o código do fragment cabecalho.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8" %>

<%@ taglib prefix="s" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>

<header id="layout-header">
    <div class="clearfix container">
        <a href="${s:mvcUrl("HC#index").build()}" id="logo">
        </a>
        <div id="header-content">
            <nav id="main-nav">

                <ul class="clearfix">
                    <li><a href="${s:mvcUrl('CCC#itens').build()}" rel="nofollow">
                        <fmt:message key="menu.cart">
                            <%--Aqui da erro quando uso o expression dentro do value--%>
                            <fmt:param value="${carrinhoCompras.quantidade}" />
                        </fmt:message></a></li>

                    <li><a href="/pages/sobre-a-casa-do-codigo" rel="nofollow">
                        <fmt:message key="menu.about"/>
                    </a></li>

                    <li><a href="/pages/perguntas-frequentes" rel="nofollow">
                        <fmt:message key="menu.faq"/>
                    </a></li>
                </ul>
            </nav>
        </div>
    </div>
</header>
<nav class="categories-nav">
    <ul class="container">
        <li class="category"><a href="http://www.casadocodigo.com.br">
            <fmt:message key="navegacao.categoria.home"/>
        </a></li>
        <li class="category"><a href="/collections/livros-de-agile">
            <fmt:message key="navegacao.categoria.agile"/>
        </a></li>
        <li class="category"><a href="/collections/livros-de-front-end">
            <fmt:message key="navegacao.categoria.front_end"/>
        </a></li>
        <li class="category"><a href="/collections/livros-de-games">
            <fmt:message key="navegacao.categoria.games"/>
        </a></li>
        <li class="category"><a href="/collections/livros-de-java">
            <fmt:message key="navegacao.categoria.java"/>
        </a></li>
        <li class="category"><a href="/collections/livros-de-mobile">
            <fmt:message key="navegacao.categoria.mobile"/>
        </a></li>
        <li class="category"><a href="/collections/livros-desenvolvimento-web">
            <fmt:message key="navegacao.categoria.web"/>
        </a></li>
        <li class="category"><a href="/collections/outros">
            <fmt:message key="navegacao.categoria.other"/>
        </a></li>
    </ul>
</nav>

E o messages.properties:

typeMismatch=O tipo de dado foi inválido.
typeMismatch.produto.paginas=Digite um valor válido. Exemplo: "100"
field.required=Campo obrigatório
field.required.produto.titulo=O campo título é obrigatório
field.required.produto.paginas=Informe o número de páginas
field.required.produto.descricao=O campo descrição é obrigatório

navegacao.categoria.home=Home
navegacao.categoria.agile=Agilidade
navegacao.categoria.front_end=Front End
navegacao.categoria.games=Jogos
navegacao.categoria.java=Java
navegacao.categoria.mobile=Móvel
navegacao.categoria.web=Web
navegacao.categoria.other=Outros

menu.cart=Seu carrinho ({0})
menu.about=Sobre nós
menu.faq=Perguntas Frequentes
1 resposta
solução!

Oi Israel,

O erro ocorreu porque o import da taglib fmt está incorreto.

<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>

A URI correta é: http://java.sun.com/jsp/jstl/fmt.

No seu URI faltou o /jsp.

Veja se resolve.

Bons estudos!