我遇到了尝试在JSTL标签中使用EL的问题

时间:2009-05-22 17:09:05

标签: jsp jstl el

我正在尝试在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

App-server:tomcat 6.0.16

2 个答案:

答案 0 :(得分:5)

您必须在taglib声明中使用此URL。

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

确保您的web.xml声明了servlet规范2.4 +

本文的解释为:How to Reference and Use JSTL in your Web Application

答案 1 :(得分:1)

检查web.xml中的web-app版本

<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-version.jar的META-INF中的jstl uri,选择c.tld,fmt.tld等等.lib版本必须是:

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