javax.servlet.jsp.jstl.core
クラス LoopTagSupport

java.lang.Object
  拡張javax.servlet.jsp.tagext.TagSupport
      拡張javax.servlet.jsp.jstl.core.LoopTagSupport
すべての実装インタフェース:
javax.servlet.jsp.tagext.IterationTag, LoopTag, java.io.Serializable, javax.servlet.jsp.tagext.Tag, javax.servlet.jsp.tagext.TryCatchFinally

public abstract class LoopTagSupport
extends javax.servlet.jsp.tagext.TagSupport
implements LoopTag, javax.servlet.jsp.tagext.IterationTag, javax.servlet.jsp.tagext.TryCatchFinally

JSTL 1.0 では, LoopTagインタフェース(このインタフェースとJSP1.2で定義されている javax.servlet.jsp.tagext.IterationTagとを混同しないようにして下さい) を実装することにより,開発者がカスタム反復タグを作成することができるようになっています. LoopTag はカスタムタグを認識し,型安全に連動するための反復タグのメカニズムを確立します.

殆どの反復タグは実際の反復的な振る舞いと関連する同様な振る舞いをするので, JSTL 1.0 は実装を促進するためにこの基底となるサポートクラスを提供します. 多くの反復タグはこれを継承し,hasNext()と next()メソッドを単に実装するだけでしょう. これらのメソッドの実装は,反復終了するためのハンドラのためのコンテンツを提供します.

特に, この基底クラスは次の項目のサポートを提供します.:

これらの作業へのサポートを提供するために,LoopTagSupport は 反復の更新を実行する制御用変数を含みます. アクセッサは,これらの制御用変数のために提供されています. 変数は変換時(例えば, var, status)に必要とされたり,要求される情報を表すとき 他の変数にとっては, アクセッサはここへ提供されることはできません. サブクラスはそれらのアクセッサがいかに受け取るかの実装によって異なるからです. インスタンスにとっては,あるサブクラスはStringを受け付け,式の評価を行って ある特別な型のオブジェクトへ変換するかもしれません; その他はオブジェクトを直接的に受付けるかもしれません. 静的な他のものは,そのような情報を外部制御から見えるようにしたくはないかもしれません.

作成者:
Shawn Bayern
関連項目:
直列化された形式

フィールドの概要
protected  int begin
          indexの開始 (属性 'begin')
protected  boolean beginSpecified
          'begin' が指定されていたかを示す2値フラグ
protected  int end
          indexの終了 (属性 'end')
protected  boolean endSpecified
          'end' が指定されていたかを示す2値フラグ
protected  java.lang.String itemId
          属性表示の制御
protected  java.lang.String statusId
          属性表示の制御
protected  int step
          反復の幅 (属性 'step')
protected  boolean stepSpecified
          'step' が指定されていたかを示す2値フラグ
 
クラス javax.servlet.jsp.tagext.TagSupport から継承したフィールド
id, pageContext
 
インタフェース javax.servlet.jsp.tagext.Tag から継承したフィールド
EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE
 
インタフェース javax.servlet.jsp.tagext.IterationTag から継承したフィールド
EVAL_BODY_AGAIN
 
コンストラクタの概要
LoopTagSupport()
          新規のLoopTagSupportのコンストラクトします.
 
メソッドの概要
 int doAfterBody()
          最後になるまで反復を続けます.-- 最後になるまでとは,(a)まだアイテムがまだあり, かつ (b) ('step'で指定された)'end'に到達していない,という間は,ということです.
 void doCatch(java.lang.Throwable t)
          与えられたThrowableを再度スローします.
 void doFinally()
          このLoopTagSupport集合のすべての属性を削除します.
 int doStartTag()
          最初のアイテムの処理により反復を開始します.
 java.lang.Object getCurrent()
          反復において現在のアイテムを取り出します.等冪な振る舞い; getCurrent()を繰り返し呼ぶことは、反復が進んでいない限り、同じObjectを返します.
 LoopTagStatus getLoopStatus()
          反復における現在の回に関する情報を提供するための '状態' オブジェクトを取り出します。
protected abstract  boolean hasNext()
          反復の対象となる1以上のアイテムが有効になっているかに関する情報を返します。
protected abstract  java.lang.Object next()
          タグが反復する次のオブジェクトを返します。
protected abstract  void prepare()
          単一のタグ起動のための準備をします。
 void release()
          このLoopTagSupportが持つ(継承している)リソースを解放します.
 void setVar(java.lang.String id)
          'var'属性を設定します.
 void setVarStatus(java.lang.String statusId)
          'varStatus'属性を設定します.
protected  void validateBegin()
          "begin" 属性が実用的か確認します。
protected  void validateEnd()
          "end" 属性が実用的か確認します もしそうでなかったら伝搬するための例外を投げます。
protected  void validateStep()
          "step" 属性が実用的か確認します もしそうでなかったら伝搬するための例外を投げます。
 
クラス javax.servlet.jsp.tagext.TagSupport から継承したメソッド
doEndTag, findAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setPageContext, setParent, setValue
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
インタフェース javax.servlet.jsp.tagext.Tag から継承したメソッド
doEndTag, getParent, setPageContext, setParent
 

フィールドの詳細

begin

protected int begin
indexの開始 (属性 'begin')


end

protected int end
indexの終了 (属性 'end'). -1 は内部的に'endの指定がない'ことを表します。 しかしながらJSTLコアタグのためのアクセッサは この値がユーザーによって直接与えられることをゆるさない


step

protected int step
反復の幅 (属性 'step')


beginSpecified

protected boolean beginSpecified
'begin' が指定されていたかを示す2値フラグ


endSpecified

protected boolean endSpecified
'end' が指定されていたかを示す2値フラグ


stepSpecified

protected boolean stepSpecified
'step' が指定されていたかを示す2値フラグ


itemId

protected java.lang.String itemId
属性表示の制御


statusId

protected java.lang.String statusId
属性表示の制御

コンストラクタの詳細

LoopTagSupport

public LoopTagSupport()
新規のLoopTagSupportのコンストラクトします. TagSupportのために, サブクラスは 他のコンストラクタを提供すべきではありません.そして,サブクラスは スーパークラスのコンストラクタを呼び出すべきです.

メソッドの詳細

next

protected abstract java.lang.Object next()
                                  throws javax.servlet.jsp.JspTagException

タグが反復する次のオブジェクトを返します。このメソッドは どのようなオブジェクトを反復するのかという基本的な論理を知らせるために、 LoopTagSupportの実現サブクラスにおいて提供されなければなりません。

このメソッドは一般的に反復によって戻されるのを期待されています。 しかし、場合によっては、そうでない場合もあります。 特に、次のオブジェクトの検索によってある例外が投げられる可能性があるのなら、 このメソッドは、その例外をJspTagExceptionとしてJSPコンテナへ戻して 伝搬することができます。 独立した反復はこれは不可能です。(これは、なぜLoopTagSupportが単純に そのサブタグから反復を呼ばないのかの説明になります)

戻り値:
反復の次の回で使用されるjava.lang.Object
例外:
NoSuchElementException - next()が呼ばれたときに、新しい要素が有効でない場合
javax.servlet.jsp.JspTagException - このほか、予期しない例外が発生した場合

hasNext

protected abstract boolean hasNext()
                            throws javax.servlet.jsp.JspTagException

反復の対象となる1以上のアイテムが有効になっているかに関する情報を返します。 このメソッドは、基本クラスを支援するために提供される反復の論理の手助けとなる ので、LoopTagSupportを実装するサブクラスによって提供されなければなりません。

目的とこのタグに期待されることに関するさらなる情報は next を参照してください。

戻り値:
反復を続けるための少なくとも1つ以上のアイテムがあれば、trueを、それ以外はfalse
例外:
javax.servlet.JspTagException
javax.servlet.jsp.JspTagException
関連項目:
next()

prepare

protected abstract void prepare()
                         throws javax.servlet.jsp.JspTagException

単一のタグ起動のための準備をします。特に、 サブクラスがhasNext()とnext()を呼び出すための準備をさせます。 サブクラスは、prepare()がスーパークラスにおいて、doStartTag()の 呼び出しそれぞれに対して1度呼ばれることを引き受けることができます。

例外:
javax.servlet.JspTagException
javax.servlet.jsp.JspTagException

release

public void release()
このLoopTagSupportが持つ(継承している)リソースを解放します.

定義:
インタフェース javax.servlet.jsp.tagext.Tag 内の release

doStartTag

public int doStartTag()
               throws javax.servlet.jsp.JspException
最初のアイテムの処理により反復を開始します.

定義:
インタフェース javax.servlet.jsp.tagext.Tag 内の doStartTag
例外:
javax.servlet.jsp.JspException

doAfterBody

public int doAfterBody()
                throws javax.servlet.jsp.JspException
最後になるまで反復を続けます.-- 最後になるまでとは,(a)まだアイテムがまだあり, かつ (b) ('step'で指定された)'end'に到達していない,という間は,ということです.

定義:
インタフェース javax.servlet.jsp.tagext.IterationTag 内の doAfterBody
例外:
javax.servlet.jsp.JspException

doFinally

public void doFinally()
このLoopTagSupport集合のすべての属性を削除します.

これらの属性は入れ子のスコープのスクリプト変数をサポートするためのものです. したがって,スクリプト変数を放置したままにし属性空間を汚す、ということがないようにします.

定義:
インタフェース javax.servlet.jsp.tagext.TryCatchFinally 内の doFinally

doCatch

public void doCatch(java.lang.Throwable t)
             throws java.lang.Throwable
与えられたThrowableを再度スローします.

定義:
インタフェース javax.servlet.jsp.tagext.TryCatchFinally 内の doCatch
例外:
java.lang.Throwable

getCurrent

public java.lang.Object getCurrent()
インタフェース LoopTag の記述:
反復において現在のアイテムを取り出します.等冪な振る舞い; getCurrent()を繰り返し呼ぶことは、反復が進んでいない限り、同じObjectを返します. (明確に言えば,getCurrent()を呼ぶことは、反復を進めません.)

定義:
インタフェース LoopTag 内の getCurrent
戻り値:
現在のアイテム(オブジェクト型)

getLoopStatus

public LoopTagStatus getLoopStatus()
インタフェース LoopTag の記述:
反復における現在の回に関する情報を提供するための '状態' オブジェクトを取り出します。

定義:
インタフェース LoopTag 内の getLoopStatus
戻り値:
現在のLoopTagのLoopTagStatus

setVar

public void setVar(java.lang.String id)
'var'属性を設定します.

パラメータ:
id - 反復の現在のアイテムを保持するスコープありの変数の名前

setVarStatus

public void setVarStatus(java.lang.String statusId)
'varStatus'属性を設定します.

パラメータ:
statusId - 反復の現在の状態を保持するスコープありの変数の名前

validateBegin

protected void validateBegin()
                      throws javax.servlet.jsp.JspTagException
"begin" 属性が実用的か確認します。 もしそうでなかったら伝搬するための例外を投げます。

例外:
javax.servlet.jsp.JspTagException

validateEnd

protected void validateEnd()
                    throws javax.servlet.jsp.JspTagException
"end" 属性が実用的か確認します もしそうでなかったら伝搬するための例外を投げます。

例外:
javax.servlet.jsp.JspTagException

validateStep

protected void validateStep()
                     throws javax.servlet.jsp.JspTagException
"step" 属性が実用的か確認します もしそうでなかったら伝搬するための例外を投げます。

例外:
javax.servlet.jsp.JspTagException


このドキュメントは、Ja-Jakarta Project により訳されました。コメントがある場合は、report@jajakarta.orgまでお願いします。

Copyright © 1999-2003 The Apache Software Foundation. All Rights Reserved.