国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Taglib筆記
 讀完《jsp設(shè)計(jì)》后深深為大師的功力折服。這篇筆記就當(dāng)是個(gè)總結(jié)。

  所有代碼在win2000 + tomcat 4.1.17 下通過。

  我剛開始使用java,有不當(dāng)之處,請(qǐng)高手多指教。

 

第一章:怎樣使用Taglib

一、第一種方法:僅聲明TLD位置

jsp文件頭部,聲明:

<%@ taglib uri=”/WEB-INF/tlds/orataglib_1_0.tld” prefix=”ora”%>

這樣就ok

二、第二種方法:定義庫名稱

jsp文件頭部,聲明:

<%@ taglib uri=”/orataglib” prefix=”ora”%>

 

WEB.XML添加如下聲明:

<taglib>

<taglib-uri>/orataglib</taglib-uri>

<taglib-location>/WEB-INF/tlds/orataglib_1_0.tld</taglib-location>

</taglib>

 

tld里加上:

<shortname>ora</shortname>

<uri>/orataglib</uri>

 

三、區(qū)別

 如果類不多,用tld引用就行了。否則就用庫形式,便于升級(jí),改動(dòng)。

第二章:編寫最簡(jiǎn)單的Taglib

一、編寫HelloWorldTag

package mytag; 

import java.io.IOException;

import javax.servlet.jsp.*;

import javax.servlet.jsp.tagext.*;

public class HelloWorldTag extends TagSupport{

    public int doStartTag() throws JspTagException{

        return EVAL_BODY_INCLUDE;

    }

  public int doEndTag() throws JspTagException{

    try{

            pageContext.getOut().write("Hello World");

        }

    catch (IOException ex){

             throw new JspTagException("Error!");

        }

    return EVAL_PAGE;

    }

}

二、編寫相應(yīng)TLD文件

取名為hello.tld

 

<?xml version="1.0" encoding="ISO-8859-1" ?>

<!DOCTYPE taglib

        PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"

    "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">

<taglib>

 <tlibversion>1.0</tlibversion>

 <jspversion>1.1</jspversion>

 <shortname>myTag</shortname> 

  <tag>

        <name>hello</name>

        <tagclass>mytag.HelloWorldTag</tagclass>

        <bodycontent>empty</bodycontent>

  </tag>

</taglib>

三、編寫testtag1.jsp進(jìn)行調(diào)用

<%@ page language="java"%>

<%@ taglib uri="/WEB-INF/tlds/hello.tld" prefix="mytag"%>

<html>

<body>

<mytag:hello></mytag:hello>

</body>

</html>

四、注意點(diǎn)

1.   實(shí)際生成的類在包mytag內(nèi),要把該包放到WEB-INF\classes目錄下

2.   tld文件里的shortname 就是 jsp里的 prefix

3.   tld文件里的<tag>標(biāo)簽中,<name>表示實(shí)際類的一個(gè)別名,供jsp頁面引用。<tagclass>表示實(shí)際的類

 4。把tld文件放到WEB-INF 下的tlds文件夾內(nèi)。

五、概述

1.   必須導(dǎo)入javax.servlet.jsp.* javax.servlet.jsp.tagext.* 兩個(gè)包

2.   讓自己的類繼承TagSupport 類,并且實(shí)現(xiàn)doStartTag doEndTag 方法。

3.   編寫tld標(biāo)簽,只需指定<shortname>標(biāo)簽,和編寫具體的類標(biāo)簽<tag>,其他的可以復(fù)制粘貼。

4.   jsp頁面是用導(dǎo)入tld的辦法。然后用前綴:類名的方式調(diào)用。

 

第三章:編寫帶BODYTaglib

一、編寫HelloBodyTag

package mytag;

import java.io.*;

import javax.servlet.jsp.*;

import javax.servlet.jsp.tagext.*;

 

public class HelloBodyTag extends BodyTagSupport {

    public int doAfterBody() throws JspException {

        BodyContent bc = getBodyContent();

        JspWriter out = getPreviousOut();

        try {

            out.write(bc.getString());

        }

        catch (IOException e) {} // Ignore

        return SKIP_BODY;

    }

}

 

二、修改tld文件

加入:

     <tag>

        <name>HelloBodyTag</name>

        <tagclass>mytag.HelloBodyTag</tagclass>

   </tag>

三、        testtag2.jsp調(diào)用

<%@ page language="java"%>

<%@ taglib uri="/WEB-INF/tlds/hello.tld" prefix="mytag"%>

<html>

<body>

<mytag:HelloBodyTag>Hello,BodyTag!</mytag:HelloBodyTag>

</body>

</html>

四、概述

1類最好繼承BodyTagSupport

2BodyContent JspWriter 都是容器內(nèi)的對(duì)象

3GetPreviousOut表示外層輸出。對(duì)于某個(gè)tag來說,外層輸出就是jsp頁面。對(duì)于某個(gè)嵌套的tag,外層輸出就是父tag

第四章:讓行為互相協(xié)作

一、編寫互相協(xié)作的行為

編寫這樣的tag,在jsp頁面調(diào)用時(shí)

<mytag:helloMan><mytag:param name=”diego” ></mytag:param></mytag: helloMan>

 會(huì)得到 hello diego 的值。

 

二、編寫兩個(gè)Tag

1.編寫ParamTag

package mytag;

 

import java.net.*;

import javax.servlet.jsp.*;

import javax.servlet.jsp.tagext.*;

 

public class ParamTag extends TagSupport {

    private String name;

 

    public void setName(String name) {

        this.name = name;

    }

    public int doEndTag() throws JspException {

        Tag parent = findAncestorWithClass(this, ParamParent.class);

 

        ParamParent paramParent = (ParamParent) parent;

        paramParent.setParam(name);

        return EVAL_PAGE;

    }

   

    public void release() {

        name = null;

        super.release();

    }

}

 

2.編寫HelloParamTag

package mytag;

 

import java.io.*;

import javax.servlet.http.*;

import javax.servlet.jsp.*;

import javax.servlet.jsp.tagext.*;

 

public class HelloParamTag extends TagSupport implements ParamParent {

    private String name;

 

    public void setParam(String name) {

        this.name = name;

    }

 

    public int doStartTag() {

        return EVAL_BODY_INCLUDE;

    }

 

    public int doEndTag() throws JspException {

        JspWriter out = pageContext.getOut();

        try{

     out.print("hello " + this.name );   

     }

catch(IOException e){

         }            

        return EVAL_PAGE;

    }

 

    public void release() {

     name = null;

        super.release();

    }

}

 

3.編寫輔助的接口ParamParent

package mytag;

 

public interface ParamParent {

    void setParam(String name);

}

 

三、修改tld文件

  <tag>

        <name>helloMan</name>

        <tagclass>mytag.HelloParamTag</tagclass>

  </tag>

     

    <tag>

        <name>param</name>

        <tagclass>mytag.ParamTag</tagclass>

        <attribute>

            <name>name</name>

            <required>false</required>

        </attribute>

  </tag>

四、編寫testtag3.jsp進(jìn)行測(cè)試

<%@ page language="java"%>

<%@ taglib uri="/WEB-INF/tlds/hello.tld" prefix="mytag"%>

<html>

<body>

<mytag:helloMan><mytag:param name="diego" ></mytag:param></mytag:helloMan>

</body>

</html>

五、設(shè)計(jì)思路

1.嵌套行為中,一般父Tag實(shí)現(xiàn)業(yè)務(wù)邏輯,子Tag為父Tag提供參數(shù)

2.子Tag通過findAncestorWithClass 找到父Tag,為了達(dá)到通用化,設(shè)計(jì)接口ParamParent

3.在父Tag內(nèi)實(shí)現(xiàn)了接口的setParam方法,子Tag通過調(diào)用該方法,設(shè)置了父Tag的參數(shù)

4.父Tag實(shí)現(xiàn)業(yè)務(wù)邏輯。打印Hello


http://www.chinaaspx.com/archive/Java/18643.htm

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
jsp 自定義標(biāo)簽 二
標(biāo)簽庫描述文件(TLD)
JSP頁面標(biāo)簽的編碼實(shí)現(xiàn)(JSP)
[教程]自定義JSP中的Taglib標(biāo)簽之五自定義標(biāo)簽之SimpleTagSupport使用
jsp 自定義標(biāo)簽
JSP 自定義標(biāo)簽
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服