public interface SimpleTag extends JspTag
シンプルタグハンドラーは、doStartTag() と doEndTag() をサポートする代わりに、SimpleTag インターフェースがシンプルな doTag() メソッドを提供するという点で、クラシックタグハンドラーとは異なります。すべてのタグロジック、イテレーション、ボディ評価などは、この単一のメソッドで実行されます。このように、シンプルなタグハンドラーは BodyTag と同等の機能を備えていますが、よりシンプルなライフサイクルとインターフェースを持っています。
本文コンテンツをサポートするために、setJspBody() メソッドが提供されています。コンテナーは、タグの本体をカプセル化する JspFragment オブジェクトを使用して setJspBody() メソッドを呼び出します。タグハンドラーの実装では、そのフラグメントで invoke() を呼び出して、必要なだけ本体を評価できます。
SimpleTag ハンドラーには、引数なしの public コンストラクターが必要です。ほとんどの SimpleTag ハンドラーは SimpleTagSupport を継承する必要があります。
ライフサイクル
以下は、SimpleTag ライフサイクルの非規範的で簡単な概要です。詳細については、JSP 仕様を参照してください。
setJspContext() メソッドと setParent() メソッドは、コンテナーによって呼び出されます。setParent() メソッドは、要素が別のタグ呼び出し内にネストされている場合にのみ呼び出されます。JspFragment として設定するために、コンテナーによって setJspBody() メソッドが呼び出されます。ページでアクション要素が空の場合、このメソッドはまったく呼び出されません。doTag() メソッドはコンテナーによって呼び出されます。すべてのタグロジック、反復、ボディ評価などがこのメソッドで発生します。doTag() メソッドが戻り、すべての変数が同期されます。SimpleTagSupport| 修飾子と型 | メソッドと説明 |
|---|---|
void | doTag() このタグを呼び出すためにコンテナーによって呼び出されます。 |
JspTag | getParent() コラボレーションの目的で、このタグの親を返します。 |
void | setJspBody(JspFragment jspBody) このタグの本体を JspFragment オブジェクトとして提供し、タグハンドラーによって 0 回以上呼び出すことができます。 |
void | setJspContext(JspContext pc) この呼び出しの JspContext をこのタグハンドラーに提供するためにコンテナーによって呼び出されます。 |
void | setParent(JspTag parent) コラボレーションのために、このタグの親を設定します。 |
void doTag()
throws JspException,
IOExceptionSEJSP コンテナーは、doTag() の呼び出し後に、AT_BEGIN および AT_END 変数(関連するタグファイル、TagExtraInfo、TLD によって定義されている)を再同期します。
JspException - このタグの処理中にエラーが発生した場合。SkipPageException - このタグを(直接または間接的に)呼び出したページが評価を中止する場合。呼び出されたクラシックタグハンドラーが SKIP_PAGE を返した場合、または呼び出されたシンプルタグハンドラーが SkipPageException をスローした場合、または呼び出された Jsp フラグメントが SkipPageException をスローした場合、タグファイルから生成されるシンプルタグハンドラーはこの例外をスローする必要があります。IOExceptionSE - 出力ストリームへの書き込み中にエラーが発生した場合。void setParent(JspTag parent)
コンテナーは、このタグ呼び出しが別のタグ呼び出し内にネストされている場合にのみ、このメソッドを呼び出します。
parent - このタグを囲むタグ JspTag getParent()
void setJspContext(JspContext pc)
JspContext をこのタグハンドラーに提供するためにコンテナーによって呼び出されます。実装はこの値を保存する必要があります。pc - この呼び出しのページコンテキスト Tag.setPageContext(jakarta.servlet.jsp.PageContext)void setJspBody(JspFragment jspBody)
このメソッドは、doTag() の前に JSP ページ実装オブジェクトによって呼び出されます。ページでアクション要素が空の場合、このメソッドはまったく呼び出されません。
jspBody - このタグの本体をカプセル化するフラグメント。Copyright © 2018,2020 Eclipse Foundation.
Use is subject to license terms.