クラス CaseTag
- java.lang.Object
-
- javax.servlet.jsp.tagext.TagSupport
-
- javax.servlet.jsp.tagext.BodyTagSupport
-
- org.opengion.hayabusa.taglib.CommonTagSupport
-
- org.opengion.hayabusa.taglib.CaseTag
-
- すべての実装されたインタフェース:
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 CaseTag extends CommonTagSupport
case タグは、上位の switch タグの key とマッチした場合に、処理を行います。 case タグの以下の属性について、説明します。 match : switch_key.match( case_match ) でマッチした場合は、BODY が処理されます。 isDefault: trueに設定すると、どのcase にもマッチしなかった場合に処理されます(初期値:false) isBreak : 通常、最初にマッチした段階で、switch 処理を抜けます(初期値:true) isNull : trueに設定すると、switchのkeyが、null(またはゼロ文字列)の場合、マッチします(初期値:false)- 関連項目:
- 直列化された形式
- 変更履歴:
- 5.2.3.0 (2010/12/01) 新規追加
- 機能分類
- 画面制御
- 形式サンプル:
- ●形式:<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:case match 【TAG】switch-case のマッチ条件(case_match)を指定します isDefault 【TAG】どのcase にもマッチしなかった場合に処理する case 文かどうかを指定します(初期値:false) isBreak 【TAG】マッチした以降に継続処理を行わない(ブレイクする)かどうかを指定(初期値:true) isNull 【TAG】switchのkeyが、null(またはゼロ文字列)の場合、マッチするかどうか[true/false]を設定します(初期値:false) debug 【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false) > ... Body ... </og:case> ●使用例 <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)
- 作成者
- Kazuhiko Hasegawa
- 導入されたバージョン:
- JDK1.6,
-
-
フィールドの概要
-
クラスから継承されたフィールド org.opengion.hayabusa.taglib.CommonTagSupport
BR, BUFFER_MIDDLE, CR
-
-
コンストラクタの概要
コンストラクタ コンストラクタ 説明 CaseTag()
デフォルトコンストラクター
-
メソッドの概要
すべてのメソッド インスタンス・メソッド concreteメソッド 修飾子とタイプ メソッド 説明 int
doEndTag()
Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。int
doStartTag()
Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。protected void
release2()
タグリブオブジェクトをリリースします。void
setIsBreak(String flag)
【TAG】マッチした以降に継続処理を行わない(ブレイクする)かどうかを指定(初期値:true)。void
setIsDefault(String flag)
【TAG】どのcase にもマッチしなかった場合に処理する case 文かどうかを指定します(初期値:false)。void
setIsNull(String flag)
【TAG】switchのkeyが、null(またはゼロ文字列)の場合、マッチするかどうか[true/false]を設定します(初期値:false)。void
setMatch(String mkey)
【TAG】switch-case のマッチ条件(case_match)を指定します。String
toString()
このオブジェクトの文字列表現を返します。-
クラスから継承されたメソッド org.opengion.hayabusa.taglib.CommonTagSupport
add, add, addEventColumn, addEventColumn, check, commitTableObject, debugPrint, doAfterBody, doCatch, doFinally, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getContextAttribute, getContextPath, getCookie, getCSVParameter, getCSVParameter, getDataCondition, getDateFormat, getDBColumn, getDBFunctionName, getDocumentLink, getGUIInfo, getGUIInfoAttri, getHostName, getLabel, getLabelInterface, getLanguage, getLongLabel, getMsg, getMsglbl, getObject, getParameterNames, getParameterRows, getRequest, getRequestAttribute, getRequestCacheData, getRequestMethod, getRequestParameter, getRequestParameterValues, getRequestValue, getRequestValue, getRequestValues, getReservedParameter, getReservedValue, getResource, getSanitizedBodyString, getScope, getSessionAttribute, getTagName, getTransaction, getUser, getUserEditInfo, getUserInfo, isAjaxSubmitRequest, isDebug, isNoTransitionRequest, isNull, jspPrint, makeUrl, removeContextAttribute, removeObject, removeRequestAttribute, removeSessionAttribute, set, setAjaxSubmitRequest, setCaseIf, 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
-
-
-
-
メソッドの詳細
-
doStartTag
public int doStartTag()
Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。- 定義:
doStartTag
インタフェース内javax.servlet.jsp.tagext.Tag
- オーバーライド:
doStartTag
クラス内CommonTagSupport
- 戻り値:
- 後続処理の指示
-
doEndTag
public int doEndTag()
Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。- 定義:
doEndTag
インタフェース内javax.servlet.jsp.tagext.Tag
- オーバーライド:
doEndTag
クラス内CommonTagSupport
- 戻り値:
- 後続処理の指示
-
release2
protected void release2()
タグリブオブジェクトをリリースします。 キャッシュされて再利用されるので、フィールドの初期設定を行います。- オーバーライド:
release2
クラス内CommonTagSupport
-
setMatch
public void setMatch(String mkey)
【TAG】switch-case のマッチ条件(case_match)を指定します。- パラメータ:
mkey
- マッチ条件- 説明:
- switch_key.match( case_match ) でマッチした場合は、BODY が処理されます。
-
setIsDefault
public void setIsDefault(String flag)
【TAG】どのcase にもマッチしなかった場合に処理する case 文かどうかを指定します(初期値:false)。- パラメータ:
flag
- デフォルト処理 [true:する/false:しない]- 説明:
- trueに設定すると、どのcase にもマッチしなかった場合に処理されます このタグそのものがなにも出力しません。(つまり条件から消えます。) BODY 部に記述することが可能です。その場合は、value 属性になにも設定できません。 初期値は、false:default case 文ではない です。
-
setIsBreak
public void setIsBreak(String flag)
【TAG】マッチした以降に継続処理を行わない(ブレイクする)かどうかを指定(初期値:true)。- パラメータ:
flag
- ブレイク可否 [true:する/false:しない(=継続処理する)]- 説明:
- true に設定すると、マッチした段階で、ブレイクします。 Javaの switch-case 文は、最初に処理された case 以降を処理します。通常は、break を入れて 後続処理を実行されないようにしています。 この、switch-case タグは、caseタグの break 属性で制御します。初期値が break="true" に、 なっているため、通常は、どれかの case が実行された段階で、switchの処理は、終了されます。 break="false" にすると、switchから抜けずに、継続して case との match を実行します。 この場合、Java等と異なるのは、直後のcase文が実行されるのではなく、あくまで match 作業が 継続されるということです。つまり、複数の case で処理を行いたい場合は、break="false" に すると同時に、match 条件もそれぞれで、マッチするように設定する必要があります。 初期値は、true:ブレイクする です。
-
setIsNull
public void setIsNull(String flag)
【TAG】switchのkeyが、null(またはゼロ文字列)の場合、マッチするかどうか[true/false]を設定します(初期値:false)。- パラメータ:
flag
- nullマッチ判定 [true:する/false:しない]- 説明:
- trueに設定すると、switchのkeyが、null(またはゼロ文字列)の場合、マッチします。 初期値のfalse にすると、キーが null でない場合だけ、マッチ処理を実行します。 case の条件判定で使用されます。 初期値は、 false (null でない) です。
-
toString
public String toString()
このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。- オーバーライド:
toString
クラス内CommonTagSupport
- 戻り値:
- このクラスの文字列表現
- このメソッドは、nullを返しません
-
-