インターフェース SimpleTag

  • すべてのスーパーインターフェース:
    JspTag
    すべての既知の実装クラス:
    SimpleTagSupport

    public interface SimpleTag
    extends JspTag
    シンプルタグハンドラーを定義するためのインターフェース。

    シンプルタグハンドラーは、doStartTag() と doEndTag() をサポートする代わりに、SimpleTag インターフェースがシンプルな doTag() メソッドを提供するという点で、クラシックタグハンドラーとは異なります。すべてのタグロジック、イテレーション、ボディ評価などは、この単一のメソッドで実行されます。このように、シンプルなタグハンドラーは BodyTag と同等の機能を備えていますが、よりシンプルなライフサイクルとインターフェースを持っています。

    本文コンテンツをサポートするために、setJspBody() メソッドが提供されています。コンテナーは、タグの本体をカプセル化する JspFragment オブジェクトを使用して setJspBody() メソッドを呼び出します。タグハンドラーの実装では、そのフラグメントで invoke() を呼び出して、必要なだけ本体を評価できます。

    SimpleTag ハンドラーには、引数なしの public コンストラクターが必要です。ほとんどの SimpleTag ハンドラーは SimpleTagSupport を継承する必要があります。

    ライフサイクル

    以下は、SimpleTag ライフサイクルの非規範的で簡単な概要です。詳細については、JSP 仕様を参照してください。

    1. 提供されるゼロ引数コンストラクターを呼び出すことにより、コンテナーによって毎回新しいタグハンドラーインスタンスが作成されます。従来のタグハンドラーとは異なり、単純なタグハンドラーは、JSP コンテナーによってキャッシュおよび再利用されることはありません。
    2. setJspContext() メソッドと setParent() メソッドは、コンテナーによって呼び出されます。setParent() メソッドは、要素が別のタグ呼び出し内にネストされている場合にのみ呼び出されます。
    3. このタグに定義されている各属性の setter は、コンテナーによって呼び出されます。
    4. ボディが存在する場合、このタグのボディを JspFragment として設定するために、コンテナーによって setJspBody() メソッドが呼び出されます。ページでアクション要素が空の場合、このメソッドはまったく呼び出されません。
    5. doTag() メソッドはコンテナーによって呼び出されます。すべてのタグロジック、反復、ボディ評価などがこのメソッドで発生します。
    6. doTag() メソッドが戻り、すべての変数が同期されます。
    導入:
    JSP 2.0
    関連事項:
    SimpleTagSupport
    • メソッドのサマリー

      すべてのメソッド   インスタンスメソッド   抽象メソッド  
      修飾子と型 メソッド 説明
      voiddoTag()
      このタグを呼び出すためにコンテナーによって呼び出されます。
      JspTaggetParent()
      コラボレーションの目的で、このタグの親を返します。
      voidsetJspBody​(JspFragment jspBody)
      このタグの本体を JspFragment オブジェクトとして提供し、タグハンドラーによって 0 回以上呼び出すことができます。
      voidsetJspContext​(JspContext pc)
      この呼び出しの JspContext をこのタグハンドラーに提供するためにコンテナーによって呼び出されます。
      voidsetParent​(JspTag parent)
      コラボレーションのために、このタグの親を設定します。
    • メソッドの詳細

      • doTag

        void doTag()
            throws JspException,
                   IOExceptionSE
        このタグを呼び出すためにコンテナーによって呼び出されます。このメソッドの実装は、タグライブラリ開発者によって提供され、すべてのタグ処理、本体の反復などを処理します。

        JSP コンテナーは、doTag() の呼び出し後に、AT_BEGIN および AT_END 変数(関連するタグファイル、TagExtraInfo、TLD によって定義されている)を再同期します。

        例外:
        JspException - このタグの処理中にエラーが発生した場合。
        SkipPageException - このタグを(直接または間接的に)呼び出したページが評価を中止する場合。呼び出されたクラシックタグハンドラーが SKIP_PAGE を返した場合、または呼び出されたシンプルタグハンドラーが SkipPageException をスローした場合、または呼び出された Jsp フラグメントが SkipPageException をスローした場合、タグファイルから生成されるシンプルタグハンドラーはこの例外をスローする必要があります。
        IOExceptionSE - 出力ストリームへの書き込み中にエラーが発生した場合。
      • setParent

        void setParent​(JspTag parent)
        コラボレーションのために、このタグの親を設定します。

        コンテナーは、このタグ呼び出しが別のタグ呼び出し内にネストされている場合にのみ、このメソッドを呼び出します。

        パラメーター:
        parent - このタグを囲むタグ
      • getParent

        JspTag getParent()
        コラボレーションの目的で、このタグの親を返します。
        戻り値:
        このタグの親
      • setJspContext

        void setJspContext​(JspContext pc)
        この呼び出しの JspContext をこのタグハンドラーに提供するためにコンテナーによって呼び出されます。実装はこの値を保存する必要があります。
        パラメーター:
        pc - この呼び出しのページコンテキスト
        関連事項:
        Tag.setPageContext(jakarta.servlet.jsp.PageContext)
      • setJspBody

        void setJspBody​(JspFragment jspBody)
        このタグの本体を JspFragment オブジェクトとして提供し、タグハンドラーによって 0 回以上呼び出すことができます。

        このメソッドは、doTag() の前に JSP ページ実装オブジェクトによって呼び出されます。ページでアクション要素が空の場合、このメソッドはまったく呼び出されません。

        パラメーター:
        jspBody - このタグの本体をカプセル化するフラグメント。