本文將一步一步介紹在Orion Application Server下定義自己的標(biāo)簽,然后,實(shí)現(xiàn)該標(biāo)簽的功能,最后用一個(gè)jsp例子測(cè)試。

二、建立標(biāo)簽,實(shí)現(xiàn)該標(biāo)簽的功能。

1.命名package為:com.acme " /> 91这里只有精品,日韩小视频在线播放,国产va精品网站精品网站精品

一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

JAVA/JSP學(xué)習(xí)系列之七(Orion下自定義Tag)

一、前言 (本文譯自O(shè)rion官方站點(diǎn))

   本文將一步一步介紹在Orion Application Server下定義自己的標(biāo)簽,然后,實(shí)現(xiàn)該標(biāo)簽的功能,最后用一個(gè)jsp例子測(cè)試。

二、建立標(biāo)簽,實(shí)現(xiàn)該標(biāo)簽的功能。

1.命名package為:com.acme.mytags(為了和原文相同,我不做改動(dòng))

package com.acme.mytags;

2.import相關(guān)class

import Javax.servlet.jsp.*;

import Javax.servlet.jsp.tagext.*;

3.實(shí)現(xiàn)Javax.servlet.jsp.tagext.Tag接口:

public class HelloWorld implements Tag

{

4.定義局部變量

private PageContext pageContext;

private Tag parent;

5.調(diào)用標(biāo)簽開始的實(shí)現(xiàn)方法

public int doStartTag() throws Javax.servlet.jsp.JspException

{

return SKIP_BODY;

}

注意:這個(gè)方法返回 SKIP_BODY,就是標(biāo)簽的body為空的時(shí)候,將返回這個(gè)值,否則將返回:EVAL_BODY_INCLUDE

6.調(diào)用標(biāo)簽結(jié)束的實(shí)現(xiàn)方法

public int doEndTag() throws Javax.servlet.jsp.JspException

{

try

{

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

}

catch(Java.io.IOException e)

{

throw new JspException("IO Error: " + e.getMessage());

}

return EVAL_PAGE;

}

這樣將在jsp文件的自定義標(biāo)簽結(jié)束地方輸出“Hello World!”

7.還不夠,我們還要寫下面的方法:

public void release() {}

對(duì)于本簡單的例子,上面的方法不需要任何實(shí)現(xiàn)。

8.JSP的容器要調(diào)用下面的方法:

public void setPageContext(final Javax.servlet.jsp.PageContext pageContext) {

this.pageContext=pageContext;

}

JSP容器通過上面的方法調(diào)用標(biāo)簽,而且上面的方法用來設(shè)置標(biāo)簽的PageContext.

9.JSP的容器還要調(diào)用下面的方法:

public void setParent(final Javax.servlet.jsp.tagext.Tag parent)

{

this.parent=parent;

}

JSP容器通過上面的方法設(shè)置標(biāo)簽的parent-Tag,因?yàn)槊總€(gè)標(biāo)簽的PageContext都要保留它的parent標(biāo)簽。

10.最后,實(shí)現(xiàn)方法:

public Javax.servlet.jsp.tagext.Tag getParent()

{

return parent;

}

}

11. 編譯標(biāo)簽。

三、描敘標(biāo)簽

現(xiàn)在將要寫一個(gè)描敘文件,描敘該標(biāo)簽。

1.建立一個(gè)taglib.tld文件,

2.taglib.tld是一個(gè)XML格式的文本文件,XML的頭如下:

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

3.描敘標(biāo)簽庫

<taglib>

<tlibversion>1.0</tlibversion>

<jspversion>1.1</jspversion>

<shortname>mt</shortname> <uri>http://www.orionserver.com/tutorials/tagtut/lesson1/mytags.jar</uri>

<info>My first Tag library</info>

4.描敘標(biāo)簽

<tag>

<name>helloWorld</name>

<tagclass>com.acme.mytags.HelloWorld</tagclass>

<bodycontent>empty</bodycontent>

<info>A Hello world Tag</info>

</tag>

5.結(jié)束

</taglib>

四、打包

名稱為:mytags.jar

其目錄結(jié)構(gòu)為:

com/acme/mytags/HelloWorld.class

META-INF/taglib.tld

五、在jsp文件中使用自定義標(biāo)簽

建立hello.jsp如下:

<%@ taglib uri="mytags.jar" prefix="mt" %>

<HTML>

<HEAD>

<TITLE>Hello World!</TITLE>

</HEAD> <BODY BGCOLOR="#FFFFFF">

<HR>

<mt:helloWorld/>

<HR>

</BODY>

</HTML>

六、測(cè)試運(yùn)行

在orion目錄下,建立如下結(jié)構(gòu),其中,tag是自己建立的,前面的目錄是本來就有的。

E:/orion/default-web-app/tag

將jar文件和jsp文件全部放到這個(gè)目錄下。

然后,訪問:

http://localhost:[port]/tag/hello.jsp

將出現(xiàn):


--------------------------------------------------------------------------------


Hello World! 


--------------------------------------------------------------------------------

七、恭喜,你已經(jīng)成功了!

附:mytags.jar和hello.jsp 文件本站下載地址:

http://www.wodejia.NET/softdownload/Java/orion_tag01.zip

jsp技術(shù)JAVA/JSP學(xué)習(xí)系列之七(Orion下自定義Tag),轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 四虎精品久久久久影院 | 国产在线观看人成激情视频 | 91秒拍国产福利一区 | 精品久久久一二三区 | 性夜黄a爽爽免费视频国产 性夜影院爽黄e爽痛轻点www | 亚洲fuli在线观看 | 韩国福利影视一区二区三区 | 怡红院亚洲 | 亚洲国产婷婷香蕉久久久久久 | 欧美经典成人在观看线视频 | 亚洲一区精品中文字幕 | 国产精品特黄一级国产大片 | 欧美精品做人一级爱免费 | 四虎国产精品永久在线播放 | freexxxx性大陆另类 | 伊人碰碰 | 久久夜色精品国产噜噜亚洲a | 亚洲精品欧美综合四区 | 亚洲黄色在线播放 | 看5xxaaa免费毛片 | 一色屋成人免费精品网站 | 看大片全色黄大色黄 | www.黄色在线 | 一区二区三区中文国产亚洲 | 国产精品1区2区 | 4se成人| 777久久婷婷成人综合色 | 国语自产拍在线观看任你躁 | 国产99视频精品免费视频7 | 国产成人免费午夜在线观看 | 一区二区在线观看视频 | 亚洲色吧 | 91伊人网 | 五月天激情婷婷婷久久 | 日韩精品网址 | 丁香六月 久久久 | 欧美精品国产 | 亚洲黄区 | 成人最新午夜免费视频 | 美女掰开逼 | 久久精品视香蕉蕉er大臿蕉 |