<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      JAVA/JSP學習系列之7(Orion下自定義Tag)

      [摘要]一、前言 (本文譯自Orion官方站點)   本文將一步一步介紹在Orion Application Server下定義自己的標簽,然后,實現該標簽的功能,最后用一個jsp例子測試。 二、建立標簽,實現該標簽的功能。1.命名package為:com.acme.mytags(為了和原文相同,我不做改...
      一、前言 (本文譯自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! 


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

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

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

      http://www.wodejia.net/softdownload/java/orion_tag01.zip




      日韩精品一区二区三区高清