クラス LoopTagSupport

  • 実装されたすべてのインターフェース:
    LoopTagIterationTagJspTagTagTryCatchFinallySerializableSE

    public abstract class LoopTagSupport
    extends TagSupport
    implements LoopTag, IterationTag, TryCatchFinally

    反復タグの実装を容易にする基本サポートクラス。

    ほとんどの反復タグは実際の反復動作に関して同じように動作するため、Jakarta Standard Tag Library は実装を容易にするためにこの基本サポートクラスを提供します。多くの反復タグはこれを継承し、hasNext() および next() メソッドを実装して、ハンドラーが反復するコンテンツを提供するだけです。

    特に、この基本クラスは以下のサポートを提供します。

    • 保護された prepare()next()hasNext() メソッドに基づく反復制御
    • サブセット化 (感受性のためのサブセットパラメーターの検証を含む、beginendstep 機能)
    • アイテム検索 (getCurrent())
    • ステータス検索 (LoopTagStatus)
    • 属性の公開 (var および varStatus 属性によって設定)

    これらのタスクをサポートするために、LoopTagSupport には、反復を変更するように機能する特定の制御変数が含まれています。これらの制御変数が変換時に必要または必要な情報を表す場合、これらの制御変数に対してアクセサーが提供されます (例: varvarStatus)。他の変数については、アクセサーを受け取る方法の実装がサブクラスによって異なる可能性があるため、ここでアクセサーを提供することはできません。たとえば、あるサブクラスが String を受け入れ、式エバリュエーターを使用してそれを特定の型のオブジェクトに変換する場合があります。他のものはオブジェクトを直接受け入れるかもしれません。さらに、そのような情報を外部の管理下に公開したくない場合もあります。

    作成者:
    Shawn Bayern
    関連事項:
    直列化された形式
    • フィールドの詳細

      • begin

        protected int begin
        開始インデックス ('begin' 属性)
      • end

        protected int end
        反復の終了インデックス('end' 属性)。値 -1 は、内部的に「終了が指定されていない」ことを示しますが、コア Jakarta Standard Tag Library タグのアクセサーでは、この値をユーザーが直接指定することはできません。
      • step

        protected int step
        反復ステップ ('step' 属性)
      • beginSpecified

        protected boolean beginSpecified
        'begin' が指定されたかどうかを示すブールフラグ。
      • endSpecified

        protected boolean endSpecified
        「終了」が指定されたかどうかを示すブールフラグ。
      • stepSpecified

        protected boolean stepSpecified
        「ステップ」が指定されたかどうかを示すブールフラグ。
      • itemId

        protected StringSE itemId
        属性公開コントロール
      • statusId

        protected StringSE statusId
        属性公開コントロール
      • deferredExpression

        protected ValueExpression deferredExpression
        遅延式(存在する場合)
    • コンストラクターの詳細

      • LoopTagSupport

        public LoopTagSupport()
        新しい LoopTagSupport を構築します。TagSupport と同様に、サブクラスは引数付きのコンストラクターを実装してはならず、サブクラスによって実装された引数なしのコンストラクターはスーパークラスコンストラクターを呼び出す必要があります。
    • メソッドの詳細

      • next

        protected abstract ObjectSE next()
                                throws JspTagException

        タグが反復する次のオブジェクトを返します。このメソッドは、LoopTagSupport の具象サブクラスによって提供され、どのオブジェクトを反復処理する必要があるかについて基本ロジックに通知する必要があります。

        このメソッドは通常、イテレーターによってサポートされることが予想されますが、常にそうであるとは限りません。特に、次のオブジェクトを取得すると例外がスローされる可能性がある場合、このメソッドを使用すると、その例外を JspTagException として JSP コンテナーに戻すことができます。スタンドアロンのイテレータはこれを行うことができません。(これが、LoopTagSupport がサブタグからイテレータを単に要求しない理由を説明しています。)

        戻り値:
        次の反復で使用する java.lang.Object
        例外:
        NoSuchElementExceptionSE - next() が呼び出されたが、利用可能な新しい要素がない場合
        JspTagException - その他の予期しない例外の場合
      • hasNext

        protected abstract boolean hasNext()
                                    throws JspTagException

        反復する項目の可用性に関する情報を返します。このメソッドは、サポートする基本クラスによって提供される反復ロジックを支援するために、LoopTagSupport の具象サブクラスによって提供される必要があります。

        このタグの目的と期待の詳細については、を参照してください。

        戻り値:
        反復する項目が少なくとも 1 つ以上ある場合は true、それ以外の場合は false 
        例外:
        JspTagException - エラーでスローされる
        関連事項:
        next()
      • prepare

        protected abstract void prepare()
                                 throws JspTagException

        単一のタグ呼び出しの準備をします。具体的には、サブクラスが hasNext() および next() への呼び出しを準備できるようにします。サブクラスは、prepare() がスーパークラスでの doStartTag() の呼び出しごとに 1 回呼び出されると想定できます。

        例外:
        JspTagException - エラーでスローされる
      • release

        public void release()
        この LoopTagSupport が持つ(または継承する)リソースを解放します。
        次で指定:
        インターフェース Tagrelease 
        オーバーライド:
        クラス TagSupportrelease 
        関連事項:
        Tag.release()
      • doStartTag

        public int doStartTag()
                       throws JspException
        最初のアイテムの処理から反復を開始します。
        次で指定:
        インターフェース TagdoStartTag 
        オーバーライド:
        クラス TagSupportdoStartTag 
        戻り値:
        SKIP_BODY
        例外:
        JspException - このタグの処理中にエラーが発生した場合
        関連事項:
        Tag.doStartTag()
      • doAfterBody

        public int doAfterBody()
                        throws JspException
        必要に応じて反復を継続します。つまり、(a)より多くのアイテムがあり、(b)「終了」を超えない場合(「ステップ」がある場合)。
        次で指定:
        インターフェース IterationTagdoAfterBody 
        オーバーライド:
        クラス TagSupportdoAfterBody 
        戻り値:
        SKIP_BODY
        例外:
        JspException - このタグの処理中にエラーが発生した場合
        関連事項:
        IterationTag.doAfterBody()
      • doFinally

        public void doFinally()
        この LoopTagSupport が設定した属性を削除します。

        これらの属性は、NESTED スコープのスクリプト変数をサポートすることを目的としているため、属性空間をそのままにして属性スペースを汚染することは避けたいです。

        次で指定:
        インターフェース TryCatchFinallydoFinally 
      • doCatch

        public void doCatch​(ThrowableSE t)
                     throws ThrowableSE
        指定された Throwable を再スローします。
        次で指定:
        インターフェース TryCatchFinallydoCatch 
        パラメーター:
        t - このタグをナビゲートするスロー可能な例外。
        例外:
        ThrowableSE - 例外がネストチェーンのさらに上に再スローされる場合。
      • getCurrent

        public ObjectSE getCurrent()
        インターフェースからコピーされた説明: LoopTag
        イテレーションの現在のアイテムを取得します。べき等に振る舞う。getCurrent() を繰り返し呼び出すと、反復が進むまで同じオブジェクトが返されます。(具体的には、getCurrent() を呼び出しても反復 は進みません )
        次で指定:
        インターフェース LoopTaggetCurrent 
        戻り値:
        オブジェクトとしての現在のアイテム
      • getLoopStatus

        public LoopTagStatus getLoopStatus()
        インターフェースからコピーされた説明: LoopTag
        「ステータス」オブジェクトを取得して、反復の現在のラウンドに関する情報を提供します。
        次で指定:
        インターフェース LoopTaggetLoopStatus 
        戻り値:
        現在の LoopTag の LoopTagStatus。
      • getDelims

        protected StringSE getDelims()
      • setVar

        public void setVar​(StringSE id)
        'var' 属性を設定します。
        パラメーター:
        id - 反復の現在の項目を格納するエクスポートされたスコープ付き変数の名前。
      • setVarStatus

        public void setVarStatus​(StringSE statusId)
        'varStatus' 属性を設定します。
        パラメーター:
        statusId - 反復のステータスを格納するエクスポートされたスコープ付き変数の名前。
      • validateBegin

        protected void validateBegin()
                              throws JspTagException
        "begin" プロパティが賢明であることを確認し、そうでない場合は伝播すると予想される例外をスローします。
        例外:
        JspTagException - エラーでスローされる
      • validateEnd

        protected void validateEnd()
                            throws JspTagException
        "end" プロパティが賢明であることを確認します。そうでない場合は、伝播することが予想される例外をスローします。
        例外:
        JspTagException - エラーでスローされる
      • validateStep

        protected void validateStep()
                             throws JspTagException
        "step" プロパティが賢明であることを確認し、そうでない場合は伝播すると予想される例外をスローします。
        例外:
        JspTagException - エラーでスローされる