org.opengion.hayabusa.taglib
クラス SwitchTag
java.lang.Object
javax.servlet.jsp.tagext.TagSupport
javax.servlet.jsp.tagext.BodyTagSupport
org.opengion.hayabusa.taglib.CommonTagSupport
org.opengion.hayabusa.taglib.SwitchTag
- すべての実装されたインタフェース:
- java.io.Serializable, javax.servlet.jsp.tagext.BodyTag, javax.servlet.jsp.tagext.IterationTag, javax.servlet.jsp.tagext.JspTag, javax.servlet.jsp.tagext.Tag, javax.servlet.jsp.tagext.TryCatchFinally
public class SwitchTag
- extends CommonTagSupport
switch タグは、指定された条件を、case タグに伝えます。
各属性は、{@XXXX} 変数が使用できます。
これは、ServletRequest から、XXXX をキーに値を取り出し,この変数に
割り当てます。つまり、このXXXXをキーにリクエストすれば、
この変数に値をセットすることができます。
- 関連項目:
- 直列化された形式
- 形式サンプル:
●形式:<og:switch key="・・・" />
<og:case match="A" /> ・・・ </og:case>
<og:case match="B" /> ・・・ </og:case>
<og:case match="C" /> ・・・ </og:case>
<og:case isDefault="true" /> ・・・ </og:case>
</og:switch>
●body:あり(EVAL_BODY_INCLUDE:BODYをインクルードし、{@XXXX} は解析しません)
●Tag定義:
<og:switch
key ○【TAG】switch のマッチ判定用のキーを設定します(必須)。
debug 【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false)
> ... Body ...
</og:switch>
●使用例
<og:switch key="{@PARAM}" />
<og:case match="A" /> 処理A </og:case>
<og:case match="B" /> 処理B </og:case>
<og:case match="C" /> 処理C </og:case>
<og:case isDefault="true" /> 処理X </og:case>
</og:switch>
・switch の key に対して、case の match に指定された値が、マッチ(switch_key.match( case_match ))
した場合に、case の BODY 部分が処理されます。
マッチしなければ、BODY部は、スキップされます。
・isDefault="true" の場合は、どれとも マッチしなかった場合に、実行されます。
・Javaの switch-case 文は、最初に処理された case 以降を処理します。通常は、break を入れて
後続処理を実行されないようにしています。
この、switch-case タグは、caseタグの isBreak 属性で制御します。初期値が isBreak="true" に、
なっているため、通常は、どれかの case が実行された段階で、switchの処理は、終了されます。
isBreak="false" にすると、switchから抜けずに、継続して case との match を実行します。
この場合、Java等と異なるのは、直後のcase文が実行されるのではなく、あくまで match 作業が
継続されるということです。つまり、複数の case で処理を行いたい場合は、isBreak="false" に
すると同時に、match 条件もそれぞれで、マッチするように設定する必要があります。
<og:switch key="{@PARAM}" />
<og:case match="[1]" isBreak="false" /> 処理A </og:case>
<og:case match="[12]" isBreak="false" /> 処理B </og:case>
<og:case match="[123]" isBreak="false" /> 処理C </og:case>
<og:case isNull="true" /> 処理X </og:case>
<og:case isDefault="true" /> 処理Y </og:case>
</og:switch>
・上記指定では、isBreak="false" が指定されているため、マッチした後も継続して判定処理が実施されます。
・上記例で言うと、PARAM が "1" の場合、上記3つともにマッチします。
・isNull="true" は、switch の key が null の場合に成立します。(null とは、ゼロ文字列も含む)
- 変更履歴:
5.2.3.0 (2010/12/01) 新規追加 |
- 機能分類
- 画面制御
- バージョン
- 5.2.3.0 (2010/12/01)
- 作成者
- Kazuhiko Hasegawa
- 導入されたバージョン:
- JDK1.6,
クラス javax.servlet.jsp.tagext.BodyTagSupport から継承されたフィールド |
bodyContent |
クラス javax.servlet.jsp.tagext.TagSupport から継承されたフィールド |
id, pageContext |
インタフェース javax.servlet.jsp.tagext.BodyTag から継承されたフィールド |
EVAL_BODY_BUFFERED, EVAL_BODY_TAG |
インタフェース javax.servlet.jsp.tagext.IterationTag から継承されたフィールド |
EVAL_BODY_AGAIN |
インタフェース javax.servlet.jsp.tagext.Tag から継承されたフィールド |
EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE |
メソッドの概要 |
int |
doEndTag()
Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。 |
int |
doStartTag()
Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。 |
protected java.lang.String |
getKey()
switch のマッチ判定用のキーを取得します。 |
protected boolean |
isMatch()
すでにマッチしたかどうかを返します。 |
protected void |
release2()
タグリブオブジェクトをリリースします。 |
protected void |
setBreak()
case タグが、ブレイクした場合に、このメソッドを呼び出します。 |
void |
setKey(java.lang.String key)
【TAG】switch のマッチ判定用のキーを設定します。 |
java.lang.String |
toString()
このオブジェクトの文字列表現を返します。 |
クラス org.opengion.hayabusa.taglib.CommonTagSupport から継承されたメソッド |
add, add, addEventColumn, addEventColumn, check, check, commitTableObject, debugPrint, doAfterBody, doCatch, doFinally, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getContextAttribute, getContextPath, getCookie, getCSVParameter, getDataCondition, getDateFormat, getDBColumn, getDBFunctionName, getDocumentLink, getGUIInfo, getGUIInfoAttri, getHostName, getLabel, getLabelInterface, getLanguage, getLASTAttri, getLongLabel, getMsglbl, getNVLAttri, getObject, getParameterNames, getParameterRows, getRequest, getRequestAttribute, getRequestCacheData, getRequestParameter, getRequestParameterValues, getRequestValue, getRequestValue, getRequestValues, getReservedParameter, getReservedValue, getResource, getSanitizedBodyString, getScope, getSessionAttribute, getTagName, getUser, getUserInfo, isAjaxSubmitRequest, isDebug, isNoTransitionRequest, isNull, jspPrint, removeContextAttribute, removeObject, removeRequestAttribute, removeSessionAttribute, set, setAjaxSubmitRequest, setCaseKey, setCaseNN, setCaseNull, setCaseVal, setContextAttribute, setCookie, setDebug, setLanguage, setLbl, setNoTransitionRequest, setObject, setObject, setParameterNames, setParameterRows, setRequestAttribute, setRequestCacheData, setScope, setSessionAttribute, setUserInfo, startQueryTransaction, sys, sysBool, sysInt, useMainTrans, useQuotCheck, useTag, useXssCheck |
クラス javax.servlet.jsp.tagext.BodyTagSupport から継承されたメソッド |
doInitBody, getBodyContent, getPreviousOut, release, setBodyContent |
クラス javax.servlet.jsp.tagext.TagSupport から継承されたメソッド |
findAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setPageContext, setParent, setValue |
クラス java.lang.Object から継承されたメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
インタフェース javax.servlet.jsp.tagext.Tag から継承されたメソッド |
getParent, setPageContext, setParent |
SwitchTag
public SwitchTag()
doStartTag
public int doStartTag()
- Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。
- 定義:
- インタフェース
javax.servlet.jsp.tagext.Tag
内の doStartTag
- オーバーライド:
- クラス
CommonTagSupport
内の doStartTag
- 戻り値:
- 後続処理の指示( EVAL_BODY_INCLUDE )
doEndTag
public int doEndTag()
- Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
- 定義:
- インタフェース
javax.servlet.jsp.tagext.Tag
内の doEndTag
- オーバーライド:
- クラス
CommonTagSupport
内の doEndTag
- 戻り値:
- 後続処理の指示
release2
protected void release2()
- タグリブオブジェクトをリリースします。
キャッシュされて再利用されるので、フィールドの初期設定を行います。
- オーバーライド:
- クラス
CommonTagSupport
内の release2
setKey
public void setKey(java.lang.String key)
- 【TAG】switch のマッチ判定用のキーを設定します。
- パラメータ:
key
- マッチ判定用のキー- 関連項目:
getKey()
- 説明:
switch のマッチ判定用のキーを設定します。
getKey
protected java.lang.String getKey()
- switch のマッチ判定用のキーを取得します。
case タグで、この値を取り出して、マッチ判定を行います。
- 戻り値:
- マッチ判定用のキー
- 関連項目:
setKey( String )
setBreak
protected void setBreak()
- case タグが、ブレイクした場合に、このメソッドを呼び出します。
これは、 case タグが isBreak="true" でマッチした場合、このメソッドを
呼び出し、isMatch フラグを false に設定します。
他の case は、このフラグを参照して、false であれば、スルーします。
- 関連項目:
isMatch()
isMatch
protected boolean isMatch()
- すでにマッチしたかどうかを返します。
これは、 case タグが 処理を継続するかどうかの判定に利用します。
case タグが isBreak="true" でマッチした場合、isMatch フラグは、
false が返りますので、継続処理しません。
- 戻り値:
- マッチしたかどうか[true:継続判定/false:スルー]
- 関連項目:
setBreak()
toString
public java.lang.String toString()
- このオブジェクトの文字列表現を返します。
基本的にデバッグ目的に使用します。
- オーバーライド:
- クラス
CommonTagSupport
内の toString
- 戻り値:
- このクラスの文字列表現
Webアプリケーションフレームワーク openGion
Copyright (c) 2009 The openGion Project.