クラス LoopTagSupport
- java.lang.ObjectSE
-
- jakarta.servlet.jsp.tagext.TagSupport
-
- jakarta.servlet.jsp.jstl.core.LoopTagSupport
- 実装されたすべてのインターフェース:
LoopTag
、IterationTag
、JspTag
、Tag
、TryCatchFinally
、SerializableSE
public abstract class LoopTagSupport extends TagSupport implements LoopTag, IterationTag, TryCatchFinally
反復タグの実装を容易にする基本サポートクラス。
ほとんどの反復タグは実際の反復動作に関して同じように動作するため、Jakarta Standard Tag Library は実装を容易にするためにこの基本サポートクラスを提供します。多くの反復タグはこれを継承し、
hasNext()
およびnext()
メソッドを実装して、ハンドラーが反復するコンテンツを提供するだけです。特に、この基本クラスは以下のサポートを提供します。
- 保護された
prepare()
、next()
、hasNext()
メソッドに基づく反復制御 - サブセット化 (感受性のためのサブセットパラメーターの検証を含む、
begin
、end
、step
機能) - アイテム検索 (
getCurrent()
) - ステータス検索 (
LoopTagStatus
) - 属性の公開 (
var
およびvarStatus
属性によって設定)
これらのタスクをサポートするために、
LoopTagSupport
には、反復を変更するように機能する特定の制御変数が含まれています。これらの制御変数が変換時に必要または必要な情報を表す場合、これらの制御変数に対してアクセサーが提供されます (例:var
、varStatus
)。他の変数については、アクセサーを受け取る方法の実装がサブクラスによって異なる可能性があるため、ここでアクセサーを提供することはできません。たとえば、あるサブクラスがString
を受け入れ、式エバリュエーターを使用してそれを特定の型のオブジェクトに変換する場合があります。他のものはオブジェクトを直接受け入れるかもしれません。さらに、そのような情報を外部の管理下に公開したくない場合もあります。- 作成者:
- Shawn Bayern
- 関連事項:
- 直列化された形式
フィールドサマリー
フィールド 修飾子と型 フィールド 説明 protected int
begin
開始インデックス ('begin' 属性)protected boolean
beginSpecified
'begin' が指定されたかどうかを示すブールフラグ。protected ValueExpression
deferredExpression
遅延式(存在する場合)protected int
end
反復の終了インデックス('end' 属性)。protected boolean
endSpecified
「終了」が指定されたかどうかを示すブールフラグ。protected StringSE
itemId
属性公開コントロールprotected StringSE
statusId
属性公開コントロールprotected int
step
反復ステップ ('step' 属性)protected boolean
stepSpecified
「ステップ」が指定されたかどうかを示すブールフラグ。クラス jakarta.servlet.jsp.tagext.TagSupport から継承されたフィールド
id, pageContext
インターフェース jakarta.servlet.jsp.tagext.IterationTag から継承されたフィールド
EVAL_BODY_AGAIN
インターフェース jakarta.servlet.jsp.tagext.Tag から継承されたフィールド
EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE
コンストラクターのサマリー
コンストラクター コンストラクター 説明 LoopTagSupport()
新しい LoopTagSupport を構築します。
メソッドのサマリー
すべてのメソッド インスタンスメソッド 抽象メソッド 具象メソッド 修飾子と型 メソッド 説明 int
doAfterBody()
必要に応じて反復を継続します。つまり、(a)より多くのアイテムがあり、(b)「終了」を超えない場合(「ステップ」がある場合)。void
doCatch(ThrowableSE t)
指定された Throwable を再スローします。void
doFinally()
この LoopTagSupport が設定した属性を削除します。int
doStartTag()
最初のアイテムの処理から反復を開始します。ObjectSE
getCurrent()
イテレーションの現在のアイテムを取得します。protected StringSE
getDelims()
LoopTagStatus
getLoopStatus()
「ステータス」オブジェクトを取得して、反復の現在のラウンドに関する情報を提供します。protected abstract boolean
hasNext()
反復する項目の可用性に関する情報を返します。protected abstract ObjectSE
next()
タグが反復する次のオブジェクトを返します。protected abstract void
prepare()
単一のタグ呼び出しの準備をします。void
release()
この LoopTagSupport が持つ(または継承する)リソースを解放します。void
setVar(StringSE id)
'var' 属性を設定します。void
setVarStatus(StringSE statusId)
'varStatus' 属性を設定します。protected void
validateBegin()
"begin" プロパティが賢明であることを確認し、そうでない場合は伝播すると予想される例外をスローします。protected void
validateEnd()
"end" プロパティが賢明であることを確認します。そうでない場合は、伝播することが予想される例外をスローします。protected void
validateStep()
"step" プロパティが賢明であることを確認し、そうでない場合は伝播すると予想される例外をスローします。クラス jakarta.servlet.jsp.tagext.TagSupport から継承されたメソッド
doEndTag, findAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setPageContext, setParent, setValue
クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
インターフェース jakarta.servlet.jsp.tagext.Tag から継承されたメソッド
doEndTag, getParent, setPageContext, setParent
フィールドの詳細
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
遅延式(存在する場合)
メソッドの詳細
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 が持つ(または継承する)リソースを解放します。- 次で指定:
- インターフェース
Tag
のrelease
- オーバーライド:
- クラス
TagSupport
のrelease
- 関連事項:
Tag.release()
doStartTag
public int doStartTag() throws JspException
最初のアイテムの処理から反復を開始します。- 次で指定:
- インターフェース
Tag
のdoStartTag
- オーバーライド:
- クラス
TagSupport
のdoStartTag
- 戻り値:
- SKIP_BODY
- 例外:
JspException
- このタグの処理中にエラーが発生した場合- 関連事項:
Tag.doStartTag()
doAfterBody
public int doAfterBody() throws JspException
必要に応じて反復を継続します。つまり、(a)より多くのアイテムがあり、(b)「終了」を超えない場合(「ステップ」がある場合)。- 次で指定:
- インターフェース
IterationTag
のdoAfterBody
- オーバーライド:
- クラス
TagSupport
のdoAfterBody
- 戻り値:
- SKIP_BODY
- 例外:
JspException
- このタグの処理中にエラーが発生した場合- 関連事項:
IterationTag.doAfterBody()
doFinally
public void doFinally()
この LoopTagSupport が設定した属性を削除します。これらの属性は、NESTED スコープのスクリプト変数をサポートすることを目的としているため、属性空間をそのままにして属性スペースを汚染することは避けたいです。
- 次で指定:
- インターフェース
TryCatchFinally
のdoFinally
doCatch
public void doCatch(ThrowableSE t) throws ThrowableSE
指定された Throwable を再スローします。- 次で指定:
- インターフェース
TryCatchFinally
のdoCatch
- パラメーター:
t
- このタグをナビゲートするスロー可能な例外。- 例外:
ThrowableSE
- 例外がネストチェーンのさらに上に再スローされる場合。
getCurrent
public ObjectSE getCurrent()
インターフェースからコピーされた説明:LoopTag
イテレーションの現在のアイテムを取得します。べき等に振る舞う。getCurrent() を繰り返し呼び出すと、反復が進むまで同じオブジェクトが返されます。(具体的には、getCurrent() を呼び出しても反復 は進みません )- 次で指定:
- インターフェース
LoopTag
のgetCurrent
- 戻り値:
- オブジェクトとしての現在のアイテム
getLoopStatus
public LoopTagStatus getLoopStatus()
インターフェースからコピーされた説明:LoopTag
「ステータス」オブジェクトを取得して、反復の現在のラウンドに関する情報を提供します。- 次で指定:
- インターフェース
LoopTag
のgetLoopStatus
- 戻り値:
- 現在の
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
- エラーでスローされる