网上看了两段jsp的tld文件内容   <?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"  
"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">     
<taglib>  
   <tlib-version>1.0</tlib-version><!-- 标签库的版本 -->  
   <jsp-version>1.2</jsp-version><!-- 这个标签库要求的JSP规范版本 -->  
   <short-name>mytag</short-name><!-- JSP页面编写工具可以用来创建助记名的可选名字 -->  
   <tag>  
      <name>helloworld</name><!-- 唯一标签名 -->  
      <tag-class>com.yd.mytag.HelloWorldTag</tag-class><!-- 标签HelloWorldTag类的完全限定名 -->  
      <body-content>empty</body-content><!-- 正文内容类型 -->  
   </tag>  
</taglib> 
 
 不知道为何在 第二行  <!DOCTYPE 哪里会划红线  , 还试了一种写法  <taglib version="2.0" 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 web-jsptaglibrary_2_0.xsd">
这样写 <taglib 又会标红,  第一次接触这方面的东西,   这是为什么 , 跟后面的 xmlns和schemaLocation有关系么?

解决方案 »

  1.   

    这个红线类似一个语法错误标识,编辑器会根据xml文档的头部定义的<!DOCTYPE taglib PUBLIC.... 来检查xml正文部分的语法是否正确,语法格式定义在<!DOCTYPE taglib PUBLIC....这串描述指示的文档中,你可以打开文档http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd 看一下里面的内容
      

  2.   

    标准是这样的.<?xml version="1.0" encoding="UTF-8" ?><taglib 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-jsptaglibrary_2_0.xsd"
        version="2.0">楼主检查下是不是空格原因。
    如果不影响正常运行,那么就是IDE编译问题了,可忽略