Holen@Blog

Holen Bolg on Donews.net

  DonewsBlog  |  Donews首页  |  Donews社区  |  Donews邮箱  |  我的首页  |  联系作者  |  聚合   |  登录
  216篇文章 :: 0篇收藏:: 353篇评论:: 6个Trackbacks

公告

Free Counters

文章

收藏

相册

我的原创文章

存档


正在读取评论……


关于taglib.tld文件的写法:
tld文件中需要一段文件头,如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
注意,Microsystems, Inc中Inc前面有一个空格,没这个空格,后台就会报错,说Invalid PUBLIC ID: -//Sun Microsystems,Inc.//DTD JSP Tag Library 1.1//EN。
其实就是少这个空格了,老外写英文时,喜欢在标点后空一格再写。(老外没有全角字,也就只好在标点后后格了,这样会比较好看)

关于自定义的taglib的开发:
 1、自定义一个tag,并写出其.tld文件,比如:
  <taglib>
   <tlibversion>1.0</tlibversion>
   <jspversion>1.1</jspversion>
   <shortname>mytablib</shortname>
   <uri>/mytaglib</uri>
   <tag>
    <name>hello</name>
    <tagclass>com.holen.test1.HelloTag</tagclass>
    <bodycontent>empty</bodycontent>
    <info>Just Says Hello</info>
   </tag>
  </taglib>
  前四句为taglib的说是,每一个tag为一节,如hello。
 2、然后为每个tag开发,也就是写class,比如:
  package com.holen.test1;
  import javax.servlet.jsp.JspException;
  import javax.servlet.jsp.JspTagException;
  import javax.servlet.jsp.tagext.TagSupport;
  public class HelloTag extends TagSupport {
    public HelloTag() {
    }
    public int doEndTag() throws JspException{
      try{
        pageContext.getOut().print("HolenChen");
      }catch(Exception ex){
        ex.printStackTrace();
      }
      return SKIP_BODY;
    }
    public void release(){
      super.release();
    }
  }
  其实就是重写doEndTag等方法。
 3、在web.xml中加入,比如:
    <taglib>
      <taglib-uri>/mytaglib</taglib-uri>
      <taglib-location>/WEB-INF/mytaglib.tld</taglib-location>
    </taglib>
 4、调用
  <%@ taglib uri="/mytaglib" prefix="mm" %>
  <mm:hello/>



Trackback: http://tb.donews.net/TrackBack.aspx?PostId=23174


[点击此处收藏本文]  发表于2004年05月28日 10:24 PM




正在读取评论……

发表评论

大名:
网址:
验证码
评论