java – 正确的.tld文件头

我想创建自定义标记,但我在JSPVersion行上得到“ XML解析错误”.我检查我的JSP版本,正好是2.1.我认为链接错误.
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems,Inc.//DTD JSP Tag Library 1.2//EN"
    "http://java.sun.com/j2ee/dtd/web-jsptaglibrary_1_2.dtd">
<tlib-version>1.0</tlib-version>

<jsp-version>2.1</jsp-version>

谁能帮我?谢谢

UPD / ERROR MESSAGE:org.apache.jasper.JasperException:无法初始化TldLocationsCache:org.apache.jasper.JasperException:文件/WEB-INF/tlds/tag.tld上的XML解析错误:(第11行,第2列)

解决方法

您正在使用旧的JSP 1.2标记库声明的DTD风格.您需要删除它(以及< jsp-version>)并使用新的JSP 2.1 XSD声明:
<?xml version="1.0" encoding="UTF-8" ?>
<taglib
    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/web-jsptaglibrary_2_1.xsd"
    version="2.1">

    <!-- Taglib config here -->
</taglib>

确保您正在阅读JSP 2.1的正确书籍/教程,而不是JSP 1.2.

也可以看看:

> Java EE 5 tutorial – Tag library descriptors(比较,检查旧J2EE 1.3 tutorial)

相关文章

Java中的String是不可变对象 在面向对象及函数编程语言中,不...
String, StringBuffer 和 StringBuilder 可变性 String不可变...
序列化:把对象转换为字节序列的过程称为对象的序列化. 反序...
先说结论,是对象!可以继续往下看 数组是不是对象 什么是对...
为什么浮点数 float 或 double 运算的时候会有精度丢失的风险...
面试题引入 这里引申出一个经典问题,看下面代码 Integer a ...