使用以下代码引用JSTL1.1:<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
运行时报错:According to TLD or attribute directive in tag file, attribute value does not accept any expressions
后来在网上找到资料说要使用JSTL Core函数的RT库,引用代码改为:<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
问题解决,之后以为所有使用的代码都应引用JSTL Core函数的RT库。
后来查到资料才知道,EL库和RT库是JSTL1.0 版本时的产物,在JSTL1.1 就不再区分了,并且 EL 在JSP2.0版本中由扩展库进入到标准库中,貌视前景很光明。
那为什么使用:http://java.sun.com/jstl/core引用JSTL1.1 时报错呢,原来JSTL1.1 时引用的uri发生了变化。
新地址为:http://java.sun.com/jsp/jstl/core
完整代码是:<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
对比下引用地址的变化:
JSTL1.0 版:<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
JSTL1.1 版:<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>