org.opengion.hayabusa.taglib

## クラス SelectTag

- java.lang.Object
- - javax.servlet.jsp.tagext.TagSupport
  - - javax.servlet.jsp.tagext.BodyTagSupport
    - - org.opengion.hayabusa.taglib.CommonTagSupport
      - - org.opengion.hayabusa.taglib.HTMLTagSupport
        - - org.opengion.hayabusa.taglib.SelectTag

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

      public class SelectTag
      extends HTMLTagSupport
      implements OptionAncestorIF

  プルダウンメニューを作成するHTML拡張タグです。 プルダウンメニュー内の選択肢は、selectタグの内容であるoptionタグ、 またはqueryOptionタグによって指定します。 optionタグがセットされない場合は、name属性の、コードリソース からoption文字列より、 プルダウンメニューの選択肢を作成します。 name 属性に ラベルリソース のキーを与えることで、 ロケールにあわせたリソースを使用して、 画面に表示します。ロケールは、ユーザー情報の lang 属性を初期値で使用し、 セットされていない場合は、リクエスト情報のロケールから取得します。 language 属性で定義されている場合は、そちらを優先します。
  関連項目:
    直列化された形式
  形式サンプル:

         ●形式：<og:select name="…" />
         ●body：あり(EVAL_BODY_INCLUDE:BODYをインクルードし、{@XXXX} は解析しません)

         ●Tag定義：
           <og:select
               name             ○【TAG】メニューの名称を指定します(必須)。
               value              【TAG】値を指定します
               defaultVal         【TAG】value属性に値がセットされていないとき使用する、初期値を指定します
               lbl                【TAG】ラベルリソースのラベルIDを指定します
               must               【TAG】必須入力を表す色に変えるかどうか[true/false]を指定します(初期値:false)
               mustAny            【TAG】選択必須入力(どれかひとつ必須)を表す色[true/mustAny/その他]を指定します(初期値:無指定)
               addNoValue         【TAG】値なしのOptionを含めるかどうか[true/false]を指定します(初期値:false)
               td                 【TAG】テーブル形式の <td> タグを使用するかどうか[yes/no/false]を指定します(初期値:yes)
               colspan            【TAG】フィールド部分の colspan を指定します
               optionAttributes   【TAG】JavaScript などの HTML基本タグ以外の属性を、そのままタグとして使用します
               size               【TAG】リストボックスとして表示する場合の表示行数を指定します
               multiple           【TAG】複数選択を可能(multiple)にします(初期値:未設定)
               id                 【HTML】要素に対して固有の名前(id)をつける場合に設定します
               caseKey            【TAG】このタグ自体を利用するかどうかの条件キーを指定します(初期値:null)
               caseVal            【TAG】このタグ自体を利用するかどうかの条件値を指定します(初期値:null)
               caseNN             【TAG】指定の値が、null/ゼロ文字列 でない場合(Not Null=NN)は、このタグは使用されます(初期値:true)
               caseNull           【TAG】指定の値が、null/ゼロ文字列 の場合は、このタグは使用されます(初期値:true)
               lang               【HTML】要素の内容と他の属性値の言語(lang,xml:lang)を指定します
               dir                【HTML】文字表記の方向(dir)を指定します
               title              【HTML】要素に対する補足的情報(title)を設定します
               style              【HTML】この要素に対して適用させるスタイルシート(style)を設定します
               disabled           【TAG】その部品に対して、選択や変更が出来ないように(disabled)指定します(サーバーに送信されない)
               tabindex           【HTML】タブの移動順(tabindex)を指定します(0 ～ 32767)
               clazz              【HTML】要素に対して class 属性を設定します
               language           【TAG】タグ内部で使用する言語コード[ja/en/zh/…]を指定します
               onClick            【HTML】JavaScriptのイベント onClick を設定します(例:onClick="renew('query.jsp','QUERY');")
               onChange           【HTML】JavaScriptのイベント onChange を設定します(例:onChange="renew('query.jsp','QUERY');")
               onBlur             【HTML】JavaScriptのイベント onBlur を設定します(例:onBlur="this.value=value.toUpperCase();")
               onFocus            【HTML】JavaScriptのイベント onFocus を設定します
               ondblClick         【HTML】JavaScriptのイベント ondblClick を設定します
               onMouseDown        【HTML】JavaScriptのイベント onMouseDown を設定します
               onMouseUp          【HTML】JavaScriptのイベント onMouseUp を設定します
               onMouseMove        【HTML】JavaScriptのイベント onMouseMove を設定します
               onMouseOut         【HTML】JavaScriptのイベント onMouseOut を設定します
               onMouseOver        【HTML】JavaScriptのイベント onMouseOver を設定します
               onSelect           【HTML】JavaScriptのイベント onSelect を設定します
               onKeydown          【HTML】JavaScriptのイベント onKeydown を設定します
               onKeypress         【HTML】JavaScriptのイベント onKeypress を設定します
               onKeyup            【HTML】JavaScriptのイベント onKeyup を設定します
               autofocus          【HTML5】指定した入力欄にカーソルが当たって自動的にフォーカスされます。
               roles              【TAG】ロールをセットします
               eventColumn        【TAG】イベントカラム(親カラム)を指定します
               eventURL           【TAG】イベントカラム指定時に呼び出すURL
               eventCallback      【TAG】eventColumn実行後のcallbak関数指定
               debug              【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false)
           >   ... Body ...
           </og:select>

         ●使用例
            <og:select name="CDC">                       CodeResource プロパティの値を使用したいときはcode属性を使います。
                <og:option code="CDC" />
            </og:select>

            <og:select name="CDC">                       選択項目の一番上に項目を付け足すことも可能です。
                <og:option lbl="MSG0001" />              MessageResource プロパティの値を使用したいとききはlbl属性を使います。
                <og:option code="CDC" />
            </og:select>

            <og:select name="CDC">                       選択項目の一番上に項目を付け足すことも可能です。
                <og:option lbl="CDC1" />                 LabelResource プロパティの値を使用したいとききはlbl属性を使います。
                <og:option code="CDC" />
            </og:select>

            <og:select name="CDC" multiple="multiple">   選択肢の中から複数選択できるようにするときはmultiple属性を使います。
                <og:option code="CDC" />
            </og:select>

            <og:select name="CDC" disabled="disabled">   選択不可にするときはdisabled属性を使います。
                <og:option code="CDC" />
            </og:select>

            <og:select name="CDC">                       選択肢をSELECT文の結果から作成したいときはqueryOptionタグと組み合わせて使います。
                <og:queryOption>
                            select NOSYN,NOSYN,':',NMSYN from DB01 ORDER BY 1
                </og:queryOption>
            </og:select>

            <og:select name="CDC" eventColumn="OYA" >    親子関係のプルダウンを作る場合
                <og:queryOption>
                            select NOSYN,NOSYN,':',NMSYN from DB01
                             where CLM = "{@OYA}" ORDER BY 1
                </og:queryOption>
            </og:select>

  機能分類
    選択データ制御
  バージョン
    4.0
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK5.0,

- - ### フィールドの概要

    - ### クラスから継承されたフィールド 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`

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

    コンストラクタ
    コンストラクタと説明
    `SelectTag()`

  - ### メソッドの概要

    メソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `void` | `addOption(String opt)` メニュー項目の選択項目を追加します。
    `int` | `doStartTag()` Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。
    `String` | `getValue()` 値を外部から取り出します。
    `boolean` | `isMultipleAll()` 複数選択可能時に全選択を設定するかどうかを返します。
    `protected String` | `makeTag()` 入力用のプルダウンメニューを作成します。
    `protected void` | `release2()` タグリブオブジェクトをリリースします。
    `void` | `setAddNoValue(String flag)` 【TAG】値なしのOptionを含めるかどうか[true/false]を指定します(初期値:false)。
    `void` | `setColspan(String sp)` 【TAG】フィールド部分の colspan を指定します。
    `void` | `setDefaultVal(String dv)` 【TAG】value属性に値がセットされていないとき使用する、初期値を指定します。
    `void` | `setEventCallback(String callback)` 【TAG】eventColumn実行後のcallbak関数指定。
    `void` | `setEventColumn(String col)` 【TAG】イベントカラム(親カラム)を指定します。
    `void` | `setEventURL(String url)` 【TAG】イベントカラム指定時に呼び出すURL。
    `void` | `setMultiple(String multi)` 【TAG】複数選択を可能(multiple)にします(初期値:未設定)。
    `void` | `setName(String name)` 【TAG】メニューの名称を指定します。
    `void` | `setRawParam(String param)` パラメーター変換({@XXXX}の置き換えをしない状態のパラメーターをセットします。
    `void` | `setSize(String size)` 【TAG】リストボックスとして表示する場合の表示行数を指定します。
    `void` | `setTd(String flag)` 【TAG】テーブル形式の <td> タグを使用するかどうか[yes/no/false]を指定します(初期値:yes)。
    `void` | `setValue(String val)` 【TAG】値を指定します。
    `String` | `toString()` このオブジェクトの文字列表現を返します。

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

      `doEndTag, getMustType, isUseHTML5, makeAimaiPicker, makeMustHidden, setAccesskey, setAimai, setAutocomplete, setAutofocus, setClazz, setDir, setDisabled, setId, setLang, setList, setMax, setMin, setMust, setMustAny, setOnBlur, setOnChange, setOnClick, setOndblClick, setOnFocus, setOnKeydown, setOnKeypress, setOnKeyup, setOnMouseDown, setOnMouseMove, setOnMouseOut, setOnMouseOver, setOnMouseUp, setOnSelect, setOptionAttributes, setPattern, setPlaceholder, setReadonly, setRequired, setRoles, setStep, setStyle, setTabindex, setTitle, setUseMustHidden`

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

    - ### クラスから継承されたメソッド java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

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

      `getParent, setPageContext, setParent`

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

    - #### SelectTag

          public SelectTag()

  - ### メソッドの詳細

    - #### doStartTag

          public int doStartTag()

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

        5.0.2.0 (2009/11/01) 複数パラメーターの選択に対応
        5.1.7.0 (2010/06/01) command=RENEWの場合はdefaultValを無視する。
        5.1.9.0 (2010/08/01) addNoValue 対応
        5.2.2.0 (2010/11/01) caseKey 、caseVal 属性対応
        5.3.7.0 (2011/07/01) 5.1.7.0 (2010/06/01)の対応で判定条件が逆転しているバグを修正

    - #### release2

          protected void release2()

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

        2.0.0.4 (2002/09/27) カスタムタグの release() メソッドを、追加
        2.0.0.8 (2002/10/09) yes/no/false で指定するように変更
        3.0.1.3 (2003/03/11) colspan 属性を追加。
        3.1.1.2 (2003/04/04) Tomcat4.1 対応。release2() を doEndTag()で呼ぶ。
        3.5.4.0 (2003/11/25) value ,defaultVal 属性を追加。
        3.8.0.9 (2005/10/17) 複数選択可能時に全選択を設定する。
        4.1.2.1 (2008/03/13) must , mustAny 属性を自動化します。
        4.3.6.0 (2009/04/01) eventColumn,eventURL追加
        5.1.7.0 (2010/06/01) 動的プルダウン実装見直し
        5.1.9.0 (2010/08/01) columnタグで動的プルダウンが動作しない不具合に対応
        5.1.9.0 (2010/08/01) addNoValue 属性を追加。
        5.2.1.0 (2010/10/01) must , mustAny 属性の処理を、HTMLTagSupport に移します。

    - #### makeTag

          protected String makeTag()

      入力用のプルダウンメニューを作成します。 表示順の項目名タグは、あらかじめ作成済みの値をここでは受け取ります。 hasSelect 属性の値に応じて，タグの作成方法は変わります。
      定義:
        `makeTag` クラス内 `HTMLTagSupport`
      戻り値:
        表示順選択用のプルダウンメニュータグ
      変更履歴:

        2.0.0.8 (2002/10/09) yes/no/false で指定するように変更
        2.0.1.0 (2002/10/10) ラベルとフィールドのセパレーターとして、コロン(：)を使用するかどうかを指定できる
        3.0.1.3 (2003/03/11) colspan 属性を追加。
        3.5.4.0 (2003/11/25) value ,defaultVal 属性を追加。
        4.0.0.0 (2005/01/31) マルチセレクションのON/OFFをここで指定。
        4.1.2.1 (2008/03/13) must , mustAny 属性を自動化します。
        4.3.6.0 (2009/04/01) eventColumn対応
        4.3.7.1 (2009/06/08) id=labelのclass化
        5.1.7.0 (2010/06/01) 動的プルダウン実装見直し
        5.2.1.0 (2010/10/01) must , mustAny 属性の処理を、HTMLTagSupport に移します。
        5.5.3.0 (2012/06/01) idのセット見直し
        5.6.2.2 (2013/03/15) 自動must処理の出力位置を変更

    - #### addOption

          public void addOption(String opt)

      メニュー項目の選択項目を追加します。 select タグのBODY要素の OptionTag よりアクセスされます。
      定義:
        `addOption` インタフェース内 `OptionAncestorIF`
      パラメータ:
        `opt` - オプションタグ文字列
      変更履歴:

        3.1.2.0 (2003/04/07) taglib パッケージ内部で使用している箇所を protected 化する。

    - #### setName

          public void setName(String name)

      【TAG】メニューの名称を指定します。
      パラメータ:
        `name` - 名称
      説明:

             メニューの名称を指定します。

    - #### setSize

          public void setSize(String size)

      【TAG】リストボックスとして表示する場合の表示行数を指定します。
      パラメータ:
        `size` - 表示行数
      説明:

             表示行数を指定します。

    - #### setMultiple

          public void setMultiple(String multi)

      【TAG】複数選択を可能(multiple)にします(初期値:未設定)。
      パラメータ:
        `multi` - 複数選択("multiple" または "true") ,初期値全選択( "ALL" )
      説明:

             multiple 値が "multiple" または "true" の場合、複数選択状態になります。
             また、"ALL" を設定する場合は、OptionTag上で、すべてのOption が選択状態に
             初期設定されます。
             大文字、小文字の種別はなくしますが、指定以外の文字が設定された場合は、エラーになります。

      変更履歴:

        3.8.0.9 (2005/10/17) 複数選択可能時に全選択を設定する。

    - #### setTd

          public void setTd(String flag)

      【TAG】テーブル形式の <td> タグを使用するかどうか[yes/no/false]を指定します(初期値:yes)。
      パラメータ:
        `flag` - [yes:tdタグを使用/no:ラベルとフィールド/false:フィールドのみ]
      説明:

             初期値は、使用する("yes") です。

      変更履歴:

        2.0.0.8 (2002/10/09) yes/no/false で指定するように変更
        5.5.1.0 (2012/04/03) エラーメッセージ変更

    - #### setColspan

          public void setColspan(String sp)

      【TAG】フィールド部分の colspan を指定します。
      パラメータ:
        `sp` - フィールド部分の colspan
      説明:

             通常は、3 を指定して、フィールド、ラベル、フィールドの
             組み合わせ部分に、長いフィールドが適用されるように使用します。

              <og:select name="CDK" colspan="3" />

      変更履歴:

        3.0.1.3 (2003/03/11) colspan 属性を追加。

    - #### setValue

          public void setValue(String val)

      【TAG】値を指定します。
      パラメータ:
        `val` - 値
      説明:

             ここで指定された値が、optionタグの値と同じであれば、選択状態になります。

                <og:select name="CDC" value="{@ABC}" defaultVal="XYZ"  >
                     <og:option value="ABC" lbl="CDC1" />
                     <og:option value="XYZ" lbl="CDC2" />
                </og:select>

      変更履歴:

        3.5.4.0 (2003/11/25) 新規作成
        5.0.2.0 (2009/11/01) 複数パラメーターの選択に対応

    - #### getValue

          public String getValue()

      値を外部から取り出します。 OptionTag で、value を取り出して、内部の値と同じ場合は、選択状態にします。
      定義:
        `getValue` インタフェース内 `OptionAncestorIF`
      戻り値:
        内部に設定された値
      変更履歴:

        3.5.4.0 (2003/11/25) 新規作成
        5.7.1.0 (2013/12/06) OptionAncestorIF にする為、protected ⇒ public 化する。

    - #### setEventColumn

          public void setEventColumn(String col)

      【TAG】イベントカラム(親カラム)を指定します。
      パラメータ:
        `col` - 親カラム名
      説明:

             親子関係のカラムを作成する場合に利用します。
               queryOptionタグとセットで利用して下さい。

               ※詳細はcolumnTagのeventColumn属性の説明をご覧下さい。

      変更履歴:

        4.3.6.0 (2009/04/01)

    - #### setEventURL

          public void setEventURL(String url)

      【TAG】イベントカラム指定時に呼び出すURL。
      パラメータ:
        `url` - 呼び出すURL
      説明:

             イベントカラム指定時に部品を作成するJSPを指定します。
               初期値はシステムリソースのEVENT_COLUMN_URLです。
               (例：eventURL="makeColumn_custom.jsp")

               ※詳細はcolumnTagのeventURL属性の説明をご覧下さい。

      変更履歴:

        4.3.6.0 (2009/04/01)

    - #### isMultipleAll

          public boolean isMultipleAll()

      複数選択可能時に全選択を設定するかどうかを返します。 これは、上位入れ子のタグの OptionTag で、multipleAll を取り出して、 true であれば、全選択に設定します。
      定義:
        `isMultipleAll` インタフェース内 `OptionAncestorIF`
      戻り値:
        全選択:true / 通常:false
      変更履歴:

        3.8.0.9 (2005/10/17) 新規作成
        5.7.1.0 (2013/12/06) OptionAncestorIF にする為、protected ⇒ public 化する。

    - #### setDefaultVal

          public void setDefaultVal(String dv)

      【TAG】value属性に値がセットされていないとき使用する、初期値を指定します。
      パラメータ:
        `dv` - 初期値
      説明:

             value属性に値がセットされていないときに、初期値をセットします。

             なお、commandがRENEWの場合は、このdefaultValは適用されません。
             これは、defaultValの値が埋め込まれた項目が存在する画面に戻った際に、
             defaultValの項目の値がnullとなっていた場合に、defaultValの値が復元されると、
             検索結果との不一致が発生するためです。

      変更履歴:

        3.5.4.0 (2003/11/25) 新規作成
        5.0.2.0 (2009/11/01) 複数パラメーターの選択に対応

    - #### setAddNoValue

          public void setAddNoValue(String flag)

      【TAG】値なしのOptionを含めるかどうか[true/false]を指定します(初期値:false)。
      パラメータ:
        `flag` - [true:含める/それ以外:含めない]
      説明:

             カラムがプルダウンメニュー形式の場合、選択肢には通常データベース登録できる候補が
             並びます。しかし、検索時には、候補を絞りたくない(指定しない)場合があり、
             その様な場合には、値なしのOptionを含める(true)ことで、対応可能です。
             初期値:false(値なしのOptionを含めない)は、過去の互換性を重視しているため、column タグと異なります。

      変更履歴:

        5.1.9.0 (2010/08/01) 新規追加

    - #### setRawParam

          public void setRawParam(String param)

      パラメーター変換({@XXXX}の置き換えをしない状態のパラメーターをセットします。
      定義:
        `setRawParam` インタフェース内 `OptionAncestorIF`
      パラメータ:
        `param` - パラメーター
      変更履歴:

        5.1.7.0 (2010/06/01) 新規作成(動的プルダウン実装見直し)
        5.5.4.0 (2012/07/02) 予約語対応

    - #### setEventCallback

          public void setEventCallback(String callback)

      【TAG】eventColumn実行後のcallbak関数指定。
      パラメータ:
        `callback` - callbak関数
      説明:

             eventColumnの動作終了後に実行するCallback関数の指定を行います。
             関数名のみを指定して下さい。
             　ex) sampleCallback()を実行する場合はeventCallback="sampleCallback"
             実行する関数の第一引数には自動的に次の要素が入った配列が渡されます
             　[0] 変更された子カラムのID属性値
             　[1] evnetColumn実行後の子カラムの値
             　[2] eventColumn実行前の子カラムの値

             この属性は、optionAttributesへの設定と同様の動作を行います。

      変更履歴:

        5.5.4.0 (2012/07/02) 新規追加

    - #### toString

          public String toString()

      このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。
      オーバーライド:
        `toString` クラス内 `CommonTagSupport`
      戻り値:
        このクラスの文字列表現

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