openGionopenGion
5.5.7.0

org.opengion.hayabusa.taglib
クラス CaseTag

java.lang.Object
  上位を拡張 javax.servlet.jsp.tagext.TagSupport
      上位を拡張 javax.servlet.jsp.tagext.BodyTagSupport
          上位を拡張 org.opengion.hayabusa.taglib.CommonTagSupport
              上位を拡張 org.opengion.hayabusa.taglib.CaseTag
すべての実装されたインタフェース:
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 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)

関連項目:
直列化された形式
形式サンプル:
 ●形式:<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:あり

 ●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) 新規追加
機能階層
画面制御
バージョン
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
 
コンストラクタの概要
CaseTag()
           
 
メソッドの概要
 int doEndTag()
          Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
 int doStartTag()
          Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。
protected  void release2()
          タグリブオブジェクトをリリースします。
 void setIsBreak(java.lang.String flag)
          【TAG】マッチした以降に継続処理を行わない(ブレイクする)かどうかを指定(初期値:true)。
 void setIsDefault(java.lang.String flag)
          【TAG】どのcase にもマッチしなかった場合に処理する case 文かどうかを指定します(初期値:false)。
 void setIsNull(java.lang.String flag)
          【TAG】switchのkeyが、null(またはゼロ文字列)の場合、マッチするかどうか[true/false]を設定します(初期値:false)。
 void setMatch(java.lang.String mkey)
          【TAG】switch-case のマッチ条件(case_match)を指定します。
 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, getLabel, getLabelInterface, getLanguage, getLongLabel, getMsglbl, 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, 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
 

コンストラクタの詳細

CaseTag

public CaseTag()
メソッドの詳細

doStartTag

public int doStartTag()
Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。

定義:
インタフェース javax.servlet.jsp.tagext.Tag 内の doStartTag
オーバーライド:
クラス CommonTagSupport 内の doStartTag
戻り値:
後続処理の指示

doEndTag

public int doEndTag()
Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。

定義:
インタフェース javax.servlet.jsp.tagext.Tag 内の doEndTag
オーバーライド:
クラス CommonTagSupport 内の doEndTag
戻り値:
後続処理の指示

release2

protected void release2()
タグリブオブジェクトをリリースします。 キャッシュされて再利用されるので、フィールドの初期設定を行います。

オーバーライド:
クラス CommonTagSupport 内の release2

setMatch

public void setMatch(java.lang.String mkey)
【TAG】switch-case のマッチ条件(case_match)を指定します。

パラメータ:
mkey - マッチ条件
説明:
 switch_key.match( case_match ) でマッチした場合は、BODY が処理されます。

setIsDefault

public void setIsDefault(java.lang.String flag)
【TAG】どのcase にもマッチしなかった場合に処理する case 文かどうかを指定します(初期値:false)。

パラメータ:
flag - マッチしなかった場合に処理する case 文かどうか[true/false]
説明:
 trueに設定すると、どのcase にもマッチしなかった場合に処理されます
 このタグそのものがなにも出力しません。(つまり条件から消えます。)
 BODY 部に記述することが可能です。その場合は、value 属性になにも設定できません。
 初期値は、false:default case 文ではない です。

setIsBreak

public void setIsBreak(java.lang.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(java.lang.String flag)
【TAG】switchのkeyが、null(またはゼロ文字列)の場合、マッチするかどうか[true/false]を設定します(初期値:false)。

パラメータ:
flag - nullマッチ判定[true/false]
説明:
 trueに設定すると、switchのkeyが、null(またはゼロ文字列)の場合、マッチします。
 初期値のfalse にすると、キーが null でない場合だけ、マッチ処理を実行します。
 case の条件判定で使用されます。
 初期値は、 false (null でない) です。

toString

public java.lang.String toString()
このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。

オーバーライド:
クラス CommonTagSupport 内の toString
戻り値:
このクラスの文字列表現

openGion 5.5.7.0

Webアプリケーションフレームワーク openGion
SourceForge.JPCopyright (c) 2009 The openGion Project.