パッケージ org.opengion.hayabusa.taglib

# クラス SwitchTag

java.lang.Object
jakarta.servlet.jsp.tagext.TagSupport
jakarta.servlet.jsp.tagext.BodyTagSupport
org.opengion.hayabusa.taglib.CommonTagSupport
org.opengion.hayabusa.taglib.SwitchTag

すべての実装されたインタフェース:
  `BodyTag`, `IterationTag`, `JspTag`, `Tag`, `TryCatchFinally`, `Serializable`

public class SwitchTag extends CommonTagSupport
switch タグは、指定された条件を、case タグに伝えます。 各属性は、{@XXXX} 変数が使用できます。 これは、ServletRequest から、XXXX をキーに値を取り出し,この変数に 割り当てます。つまり、このXXXXをキーにリクエストすれば、 この変数に値をセットすることができます。

関連項目:
  - 直列化された形式
変更履歴:
  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: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" の場合、上記３つともにマッチします。 ・isNull="true" は、switch の key が null の場合に成立します。(null とは、ゼロ文字列も含む)
導入されたバージョン:
  JDK1.6,

- ## フィールドの概要

  ### クラスから継承されたフィールド org.opengion.hayabusa.taglib.CommonTagSupport

  `BR, BUFFER_MIDDLE, CR`

  ### クラスから継承されたフィールド jakarta.servlet.jsp.tagext.BodyTagSupport

  `bodyContent`

  ### クラスから継承されたフィールド jakarta.servlet.jsp.tagext.TagSupport

  `id, pageContext`

  ### インタフェースから継承されたフィールド jakarta.servlet.jsp.tagext.BodyTag

  `EVAL_BODY_BUFFERED, EVAL_BODY_TAG`

  ### インタフェースから継承されたフィールド jakarta.servlet.jsp.tagext.IterationTag

  `EVAL_BODY_AGAIN`

  ### インタフェースから継承されたフィールド jakarta.servlet.jsp.tagext.Tag

  `EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE`

- ## コンストラクタの概要

  コンストラクタ
  コンストラクタ
  説明
  `SwitchTag()`
  デフォルトコンストラクター

- ## メソッドの概要

  修飾子とタイプ
  メソッド
  説明
  `int`
  `doEndTag()`
  Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
  `int`
  `doStartTag()`
  Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。
  `protected String`
  `getKey()`
  switch のマッチ判定用のキーを取得します。
  `protected boolean`
  `isMatch()`
  すでにマッチしたかどうかを返します。
  `protected void`
  `release2()`
  タグリブオブジェクトをリリースします。
  `protected void`
  `setBreak()`
  case タグが、ブレイクした場合に、このメソッドを呼び出します。
  `void`
  `setKey(String key)`
  【TAG】switch のマッチ判定用のキーを設定します。
  `String`
  `toString()`
  このオブジェクトの文字列表現を返します。

  ### クラスから継承されたメソッド org.opengion.hayabusa.taglib.CommonTagSupport

  `add, add, addEventColumn, addEventColumn, check, commitTableObject, debugPrint, debugPrint, doAfterBody, doCatch, doFinally, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getContextAttribute, getContextPath, getCookie, getCSVParameter, getCSVParameter, 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`

  ### クラスから継承されたメソッド jakarta.servlet.jsp.tagext.BodyTagSupport

  `doInitBody, getBodyContent, getPreviousOut, release, setBodyContent`

  ### クラスから継承されたメソッド jakarta.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`

  ### インタフェースから継承されたメソッド jakarta.servlet.jsp.tagext.Tag

  `getParent, setPageContext, setParent`

- ## コンストラクタの詳細

  - ### SwitchTag

    public SwitchTag()
    デフォルトコンストラクター
    変更履歴:
      6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor.

- ## メソッドの詳細

  - ### doStartTag

    public int doStartTag()
    Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。
    定義:
      `doStartTag` インタフェース内 `Tag`
    オーバーライド:
      `doStartTag` クラス内 `CommonTagSupport`
    戻り値:
      後続処理の指示( EVAL_BODY_INCLUDE )

  - ### doEndTag

    public int doEndTag()
    Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
    定義:
      `doEndTag` インタフェース内 `Tag`
    オーバーライド:
      `doEndTag` クラス内 `CommonTagSupport`
    戻り値:
      後続処理の指示

  - ### release2

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

  - ### setKey

    public void setKey(String key)
    【TAG】switch のマッチ判定用のキーを設定します。
    パラメータ:
      `key` - マッチ判定用のキー
    関連項目:
      - `getKey()`
    説明:
      switch のマッチ判定用のキーを設定します。

  - ### getKey

    protected 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 String toString()
    このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。
    オーバーライド:
      `toString` クラス内 `CommonTagSupport`
    戻り値:
      このクラスの文字列表現
    このﾒｿｯﾄﾞは、nullを返しません