Я столкнулся с проблемой при попытке использовать EL в тегах JSTL - PullRequest
1 голос
/ 22 мая 2009

Я пытаюсь использовать язык выражений внутри тегов jstl, но происходит странная ошибка.

"Согласно TLD или директиве атрибута в файле тега, значение атрибута не принимает выражения"

Код выглядит примерно так:

<c:out value="${header['host']}"/>

Но следующий код работает хорошо:

${header["host"]}
<c:out value="hello"/>

Я добавил jstl.jar и standard.jar в WEB-INF / lib / (и в classpath). Директива для включения JSTL является стандартной:

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

JSTL версия 1.1.2

Сервер приложений: tomcat 6.0.16

Ответы [ 2 ]

5 голосов
/ 22 мая 2009

Вы должны использовать этот URL в объявлении taglib.

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

Убедитесь, что ваш web.xml объявил спецификацию сервлета 2.4 +

В этой статье есть объяснение: Как использовать JSTL в вашем веб-приложении

1 голос
/ 02 марта 2012

проверьте версию веб-приложения в вашем 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">

и проверьте jstl uri в META-INF jstl-version.jar, выберите c.tld, fmt.tld и т. Д. Версия lib должна быть:

<tlib-version>1.1</tlib-version>
...