首页 > 技术文章 > According to TLD or attribute directive in tag file, attribute end does not accept any expressions

xiangkejin 2016-08-22 16:36 原文

问题描述:

在 JSP 页面中使用 JSTL 标签库,访问 JSP 页面时抛出了如下异常信息:

org.apache.jasper.JasperException: /WEB-INF/manageUsers.jsp (line: 15, column: 3) According to TLD or attribute directive in tag file, attribute end does not accept any expressions
	org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:42)
	org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:443)
	org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:149)
	org.apache.jasper.compiler.Validator$ValidateVisitor.checkXmlAttributes(Validator.java:1241)
	org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:876)
	org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1538)
	org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2377)
	org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2429)
	org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2435)
。。。
问题原因:
因为使用了 JSP 2.0, 但又没有使用 JSTL 标签库的备用版本(RT库)

解决方案:

JSTL 标签库的有两种 taglib 伪指令, 其中 RT 库即是依赖于 JSP 传统的请求时属性值, 而不是依赖于 EL 来实现:

只要将

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

改为

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

推荐阅读