Eu conheci problema ao tentar usar EL em tags JSTL
Pergunta
Eu estou tentando usar a expressão linguagem dentro de tags JSTL, mas erro estranho ocorre.
"De acordo com TLD ou directiva atributo no arquivo de marca, valor do atributo não aceita quaisquer expressões"
O código é algo como isto:
<c:out value="${header['host']}"/>
Mas no próximo código é executado assim:
${header["host"]}
<c:out value="hello"/>
I adicionado jstl.jar e standard.jar a WEB-INF / lib / (e de caminho de classe). Directiva para a inclusão de jstl é padrão:
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
Versão JSTL é 1.1.2
App-servidor: tomcat 6.0.16
Solução
Você deve usar este URL em sua declaração taglib.
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
servlet Tenha certeza que seu web.xml declarou especificação 2.4 +
Este artigo tem a seguinte explicação: Como referência e usar JSTL em sua aplicação web
Outras dicas
verificar a versão web-app no ??seu web.xml
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
e verificar os uri JSTL no META-INF de jstl-version.jar, selecione o c.tld, fmt.tld e assim por diante versão lib deve ser:
<tlib-version>1.1</tlib-version>