タグライブラリのメソッド呼び出しタイミング - JSP

タグライブラリのメソッド呼び出しタイミングを表示するコードです。

コード (disptaglifecycle.jsp)

<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib uri="/LifecycleLibrary" prefix="disp" %>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Display Tag Lifecycle</title>
  </head>
  <body>

    <h1>Display Tag Lifecycle</h1>
    <br><hr><br>
    <disp:TagLifecycle />
  </body>
</html>

コード (DisplayTagLifecycle.java)

package webApplication20;

import javax.servlet.jsp.tagext.*;
import javax.servlet.jsp.*;

public class DisplayTagLifecycle extends TagSupport {

  private PageContext pc = null;
  //初期化されるときに呼び出されるメソッド

  public void setPageContext(PageContext pc) {
    this.pc = pc;
    System.out.println("PageContext()");
  }

  //タグが開始されるときに呼び出されるメソッド
  public int doStartTag() throws JspException {
    System.out.println("doStartTag()");
    //BODY処理スキップ
    return SKIP_BODY;
  }

  //タグが終了されるときに呼び出されるメソッド
  public int doEndTag() throws JspException {
    System.out.println("doEndTag()");
    //カスタム以降のJSPページを出力
    return EVAL_PAGE;
  }

  //リリースされるときに呼び出されるメソッド
  public void release() {
    System.out.println("release()");
  }
}

コード (lifecycle.tld)

<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.0" xmlns="http://java.sun.com/xml/ns/javaee" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd">
  <tlib-version>1.2</tlib-version>
  <jsp-version>1.2</jsp-version>
  <short-name>Lifecycle Tag Library</short-name>
  <uri>/WEB-INF/tlds/lifecycle</uri>
  <tag>
    <name>TagLifecycle</name>
    <tag-class>webApplication20.DisplayTagLifecycle</tag-class>
  </tag>
</taglib>

コード(web.xml)

<?xml version="1.0" encoding="UTF-8"?>
<web-app 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 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
  version="2.4">

  <jsp-config>
    <taglib>
      <taglib-uri>/LifecycleLibrary</taglib-uri>
      <taglib-location>/WEB-INF/tlds/lifecycle.tld</taglib-location>
    </taglib>
  </jsp-config>

  <session-config>
    <session-timeout>30</session-timeout>
  </session-config>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

実行結果

Webブラウザ



標準出力

PageContext()
doStartTag()
doEndTag()

著者
iPentecのプログラマー、最近はAIの積極的な活用にも取り組み中。
とっても恥ずかしがり。
最終更新日: 2024-01-06
作成日: 2011-02-13
iPentec all rights reserverd.