openGionopenGion
5.8.2.0

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
すべての実装されたインタフェース:
Serializable, BodyTag, IterationTag, JspTag, Tag, 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
 
コンストラクタの概要
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, 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() を オーバーライドします。

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

doEndTag

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

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

release2

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

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

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()
このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。

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

openGion 5.8.2.0

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