クラス SwitchTag

  • すべての実装されたインタフェース:
    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 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" の場合、上記3つともにマッチします。 ・isNull="true" は、switch の key が null の場合に成立します。(null とは、ゼロ文字列も含む)
    バージョン
    5.2.3.0 (2010/12/01)
    作成者
    Kazuhiko Hasegawa
    導入されたバージョン:
    JDK1.6,
    • コンストラクタの詳細

      • 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 インタフェース内 javax.servlet.jsp.tagext.Tag
        オーバーライド:
        doStartTag クラス内 CommonTagSupport
        戻り値:
        後続処理の指示( EVAL_BODY_INCLUDE )
      • doEndTag

        public int doEndTag()
        Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
        定義:
        doEndTag インタフェース内 javax.servlet.jsp.tagext.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を返しません