日期:2014-05-17  浏览次数:20733 次

JSP自定义标签, 刚入门 问个问题
网上看了两段jsp的tld文件内容  
XML code

<?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 哪里会划红线 , 还试了一种写法  
XML code

<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有关系么?

------解决方案--------------------
这个红线类似一个语法错误标识,

编辑器会根据xml文档的头部定义的<!DOCTYPE taglib PUBLIC.... 来检查xml正文部分的语法是否正确,语法格式定义在<!DOCTYPE taglib PUBLIC....这串描述指示的文档中,你可以打开文档http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd 看一下里面的内容
------解决方案--------------------
这和编译器语法错误的提示一样。
------解决方案--------------------
标准是这样的.
XML code

<?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">