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

Foi útil?

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>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top