tag JSTL não se traduzir em HTML
Pergunta
As minhas importações:
xmlns:c="http://java.sun.com/jstl/core"
xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
Meu código JSTL:
<h:outputLabel value="YESS" >
<fmt:formatNumber value="0.25" type="percent"></fmt:formatNumber>
HTML código gerado:
<label>YESS</label>
<fmt:formatNumber value="0.25" type="percent"></fmt:formatNumber>
O show código gerado que o núcleo JSTL é traduzir em HTML.
Mas a JSTL "fmt" não é traduzir em HTML.
Mais informações:
<fmt:ErrorInThisFunctionName value="0.25" type="percent" /> ===> generate an error
- Eu trabalho em Tomcat 6
Solução
O Pierre disse, e também,
Tente xmlns:fmt="http://java.sun.com/jstl/fmt"
Verifique web.xml para
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
Outras dicas
sugestão:
- verificar o seu arquivo TLD.
- verificar o seu cabeçalho (DTD, atributos) no seu web.xml
Se você estiver usando a sintaxe normal, JSP e não a baseada em XML sintaxe tentativa usando
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>
xmlns:c="http://java.sun.com/jstl/core"
xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
O URI para taglib núcleo é inválido. Deve ser http://java.sun.com/jsp/jstl/core
como por sua TLD , com /jsp
. O URI para o formato taglib é perfeitamente bem como por sua TLD .
Será que o núcleo de trabalho taglib de alguma forma? Se ele não funciona bem, então ele simplesmente significa que JSTL não está instalado em tudo. O Tomcat não ser fornecido com JSTL por padrão. Você precisa baixar jstl-1.2.jar colocá-lo em /WEB-INF/lib
do seu webapp. Isso é tudo. não extrair o arquivo JAR e colocar seu conteúdo soltas (arquivos TLD e assim por diante) no classpath como alguns tutoriais pobres sugere. Ele só vai piorar. Se você já fez isso, você deve limpeza. Apenas colocar o JAR JSTL no classpath é suficiente.
Eu tinha exatamente o mesmo problema que eu seria basicamente declarar e que não iria se traduzido em HTML (basicamente, em vez de imprimir a variável, o c inteira: fora foi impresso em HTML). Eu tinha esquecido de adicionar essa dependência de Maven:
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
(Se o XML não for impressa, o groupId é taglibs, o artifactId é padrão, e a versão é 1.1.2