概要 | パッケージ | クラス | 階層ツリー | 非推奨 API | 索引 | ヘルプ
openGion 5.8.3.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

すべての実装されたインタフェース:
  Serializable, BodyTag, IterationTag, JspTag, Tag, 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：あり(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" の場合、上記３つともにマッチします。
                ・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(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, 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, getUserEditInfo, 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`

コンストラクタの詳細

### CaseTag

    public CaseTag()

メソッドの詳細

### doStartTag

    public int doStartTag()

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

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

### doEndTag

    public int doEndTag()

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

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

### release2

    protected void release2()

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

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

### 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` - マッチしなかった場合に処理する case 文かどうか[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()

  このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。

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

概要 | パッケージ | クラス | 階層ツリー | 非推奨 API | 索引 | ヘルプ
| openGion 5.8.3.0
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

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