JAVA/JSP學習系列之七(Orion下自訂Tag)

來源:互聯網
上載者:User
js 一、前言 (本文譯自Orion官方網站)

   本文將一步一步介紹在Orion Application Server下定義自己的標籤,然後,實現該標籤的功能,最後用一個jsp例子測試。

二、建立標籤,實現該標籤的功能。

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

package com.acme.mytags;

2.import相關class

import javax.servlet.jsp.*;

import javax.servlet.jsp.tagext.*;

3.實現javax.servlet.jsp.tagext.Tag介面:

public class HelloWorld implements Tag

{

4.定義局部變數

private PageContext pageContext;

private Tag parent;

5.調用標籤開始的實現方法

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

{

return SKIP_BODY;

}

注意:這個方法返回 SKIP_BODY,就是標籤的body為空白的時候,將返回這個值,否則將返回:EVAL_BODY_INCLUDE

6.調用標籤結束的實現方法

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檔案的自訂標籤結束地方輸出“Hello World!”

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

public void release() {}

對於本簡單的例子,上面的方法不需要任何實現。

8.JSP的容器要調用下面的方法:

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

this.pageContext=pageContext;

}

JSP容器通過上面的方法調用標籤,而且上面的方法用來設定標籤的PageContext.

9.JSP的容器還要調用下面的方法:

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

{

this.parent=parent;

}

JSP容器通過上面的方法設定標籤的parent-Tag,因為每個標籤的PageContext都要保留它的parent標籤。

10.最後,實現方法:

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

{

return parent;

}

}

11. 編譯標籤。

三、描敘標籤

現在將要寫一個描敘檔案,描敘該標籤。

1.建立一個taglib.tld檔案,

2.taglib.tld是一個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.描敘標籤庫

<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.描敘標籤

<tag>

<name>helloWorld</name>

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

<bodycontent>empty</bodycontent>

<info>A Hello world Tag</info>

</tag>

5.結束

</taglib>

四、打包

名稱為:mytags.jar

其目錄結構為:

com/acme/mytags/HelloWorld.class

META-INF/taglib.tld

五、在jsp檔案中使用自訂標籤

建立hello.jsp如下:

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

<HTML>

<HEAD>

<TITLE>Hello World!</TITLE>

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

<HR>

<mt:helloWorld/>

<HR>

</BODY>

</HTML>

六、測試回合

在orion目錄下,建立如下結構,其中,tag是自己建立的,前面的目錄是本來就有的。

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

將jar檔案和jsp檔案全部放到這個目錄下。

然後,訪問:

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

將出現:
------------------------------------------------------------------
Hello World! 
------------------------------------------------------------------

七、恭喜,你已經成功了!


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.