基于JSP 自定義標簽使用實例介紹_JSP教程

      編輯Tag賺U幣

      推薦:在.jsp中非表單請求action的幾種方式總結
      本文整理了3種非表單請求action,需要注意的是第二種:action名都是在sturts.xml中配置的名字,有需求的朋友可以參考下哈,希望對你有所幫助

      添加JSP自定義標簽:

      先添加一個tld文件到WEB-INF文件夾中
      <?xml version="1.0" encoding="UTF-8" ?>
      <taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd"
      version="2.0">

      <description>myTag</description>
      <display-name>JSTL core</display-name>
      <tlib-version>1.0</tlib-version>
      <short-name>cnweb</short-name>
      <uri>http://www.cnweb.cn</uri>

      <tag><!-- 一個tag標簽對應一個自定義tag標簽類 -->
      <description>MyTag</description>
      <name>when</name>
      <tag-class>cn.example.when</tag-class>
      <body-content>scriptless</body-content>
      <attribute>
      <name>test</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
      </attribute>
      </tag>
      </taglib>
      引用規則:
      <%@ taglib uri="http://www.cnweb.cn" prefix="cnweb"%>

      定義錯誤處理頁面:

      <error-page>
      <exception-type>java.lang.Exception</exception-type>
      <location>/errors/error.jsp</location>
      </error-page>
      <error-page>
      <error-code>404</error-code>
      <location>/errors/error1.jsp</location>
      </error-page>

      自定義標簽執行流程:

      SimpleTagSupport

      /* Jsp引擎遇到簡單類,實例化該類;
      * 調用setJspContext,把頁面pageContext傳遞給標簽處理類;
      * 調用setParent把父標傳遞進去,如果沒有,傳遞null
      * 調用setJspBody方法,把封裝了標簽體JspFragment傳遞給標簽處理器類
      * 執行頁面中的自定義標簽,doTag()方法;-->執行完成,銷毀對象
      */

      JspFragment jf = this.getJspBody();
      jf.invoke(this.getJspContext().getOut());//如果不顯示則不進行處理

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

      public class tagShowOrNot extends TagSupport {
      public int doStartTag() throws JspException {
      return Tag.EVAL_BODY_INCLUDE;//顯示body
      //return Tag.SKIP_BODY;//隱藏body
      //Tag.EVAL_PAGE;//顯示page
      //Tag.SKIP_PAGE;//隱藏page
      }}

      TagSupport
      /*編寫一個實現TagSupport的類;
      *在tld文件中對標簽處理器類進行描述(tld文件的位置:WEB-INF下)
      *在jsp頁面中導入和使用標簽
      *
      *jsp執行過程中遇到自定義標簽時,先實例化該類;
      *然后執行方法:setPageContext()-->setParent()-->doStartTag()
      *如果有標簽體,一般會執行標簽體;doEndTag()-->整個標簽執行完后一般會執行:release()
      *
      *控制整個jsp頁面是否執行;
      *控制jsp頁面某一部分內容是否執行;
      *控制jsp頁面內容重復執行;
      *修改jsp頁面內容輸出;
      */

      //該方法在執行標簽體后,執行doEndTag()方法之前執行,直到該方法返回IterationTag.SKIP_BODY;
      public int doAfterBody() throws JspException {
      time--;
      System.out.println("重復" + time);
      if (time > 0) {
      return IterationTag.EVAL_BODY_AGAIN;
      } else
      return IterationTag.SKIP_BODY;
      }

      分享:jsp中獲取狀態怎么寫(兩種實現方式)
      由于框架是2005年的,jsp中不能存放標簽,只能有java代碼來寫了,接下來為大家介紹下兩種實現獲取狀態寫法,感興趣的各位可以參考下哈,希望可以幫助到你

      來源:模板無憂//所屬分類:JSP教程/更新時間:2013-04-23
      相關JSP教程