前言
好久没写JSTL的EL表达式了,在执行某jsp页面时突然出现一个异常,具体情况如下:
According to TLD or attribute directive in tag file, attribute items does not accept any expressions
简单的翻译一下就是:对应的tag属性不支持表达式传入。
问题原因
应用部署的时候出现该异常,可能的原因是使用了JSL2.0版本,同时又没有使用JSTL core库的备用版本,简单来说就是你的JSTL版本和web.xml版本不匹配造成的。
解决方法
1、使用JSTL1.1(推荐方法)
使用JSTL1.1Z这时的伪指令应该为:<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
2、如果不想使用JSTL1.1而是使用1.0的话,可以有如下方法
1)使用JSLT RT core备用库
JSTL core库的有两种taglib伪指令, 其中RT库即是依赖于JSP传统的请求时属性值, 而不是依赖于EL来实现(称为EL库.JSP2.0将支持EL)
JSP中使用<%@ taglib uri=http://java.sun.com/jstl/core prefix="c"%>在2.3版本都可以,在2.4就不行了,
这是版本不兼容引起的
此时改写指令为:<%@ taglib uri=http://java.sun.com/jstl/core_rt prefix="c"%>
2) 修改web.xml
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
改为2.3版本的
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
According to TLD or attribute directive in tag file, attribute items does not accept any expressions,布布扣,bubuko.com
According to TLD or attribute directive in tag file, attribute items does not accept any expressions
原文:http://blog.csdn.net/lcore/article/details/22337493