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