问题描述:
在 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" %>