クラス SelectTag

すべての実装されたインタフェース:
BodyTag, IterationTag, JspTag, Tag, TryCatchFinally, Serializable, 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/その他]を指定します(初期値:無指定) useMustHidden 【TAG】必須の自動チェック用Hiddenを出力するかどうか[true/false]を指定します(初期値:true) addNoValue 【TAG】値なしのOptionを含めるかどうか[true/false]を指定します(初期値:false) addKeyLabel 【TAG】セレクトメニューの場合、キー:ラベル形式で表示するかどうか[true/false/null]を指定します(初期値:null) td 【TAG】テーブル形式の <td> タグを使用するかどうか[yes/no/false]を指定します(初期値:yes) colspan 【TAG】フィールド部分の colspan を指定します rowspan 【TAG】ラベル、フィールド共に rowspan を指定します optionAttributes 【TAG】JavaScript などの HTML基本タグ以外の属性を、そのままタグとして使用します size 【TAG】リストボックスとして表示する場合の表示行数を指定します multiple 【TAG】複数選択を可能(multiple)にします(初期値:未設定) id 【HTML】要素に対して固有の名前(id)をつける場合に設定します caseKey 【TAG】このタグ自体を利用するかどうかの条件キーを指定します(初期値:null) caseVal 【TAG】このタグ自体を利用するかどうかの条件値を指定します(初期値:null) caseNN 【TAG】指定の値が、null/ゼロ文字列 でない場合(Not Null=NN)は、このタグは使用されます(初期値:判定しない) caseNull 【TAG】指定の値が、null/ゼロ文字列 の場合は、このタグは使用されます(初期値:判定しない) caseIf 【TAG】指定の値が、true/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】イベントカラム(親カラム)を指定します eventValue 【TAG】イベントValueのSQL分 eventURL 【TAG】イベントカラム指定時に呼び出すURL eventCallback 【TAG】eventColumn実行後のcallbak関数指定 useRealTimeCheck 【TAG】(通常は使いません)リアルタイムチェックを行うかどうか(初期値:true:行う) 5.9.32.2 (2018/05/18) 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>
導入されたバージョン:
JDK5.0,
  • コンストラクタの詳細

    • SelectTag

      public SelectTag()
      デフォルトコンストラクター
      変更履歴:
      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 )
      変更履歴:
      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)の対応で判定条件が逆転しているバグを修正, 6.3.1.0 (2015/06/28) 個人リソースのUSE_ADD_KEY_LABELで初期値設定
    • 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 に移します。, 6.0.4.0 (2014/11/28) addKeyLabel 属性を追加, 6.2.0.0 (2015/02/27) rowspan 属性を追加, 6.3.4.0 (2015/08/01) eventValue 追加
    • 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処理の出力位置を変更, 6.2.0.0 (2015/02/27) rowspan 属性を追加。makeMustHidden(String)対応, 6.3.4.0 (2015/08/01) eventValue 追加, 6.9.5.0 (2018/04/23) USE_MULTI_KEY_SELECT 廃止(IE8以降ブラウザ標準)
      このメソッドは、nullを返しません
    • addOption

      public void addOption(String opt)
      メニュー項目の選択項目を追加します。 select タグのBODY要素の OptionTag よりアクセスされます。
      定義:
      addOption インタフェース内 OptionAncestorIF
      パラメータ:
      opt - オプションタグ文字列
      関連項目:
      変更履歴:
      3.1.2.0 (2003/04/07) taglib パッケージ内部で使用している箇所を protected 化する。
    • removeLast

      public void removeLast()
      メニュー項目の最後の項目を削除します。 select タグのBODY要素の OptionTag よりアクセスされます。
      定義:
      removeLast インタフェース内 OptionAncestorIF
      関連項目:
      変更履歴:
      6.8.0.0 (2017/06/02) メニュー項目の最後の項目を削除。
    • 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:初期値全選択]
      変更履歴:
      3.8.0.9 (2005/10/17) 複数選択可能時に全選択を設定する。
      説明:
      multiple 値が "multiple" または "true" の場合、複数選択状態になります。 また、"ALL" を設定する場合は、OptionTag上で、すべてのOption が選択状態に 初期設定されます。 大文字、小文字の種別はなくしますが、指定以外の文字が設定された場合は、エラーになります。
    • setTd

      public void setTd(String flag)
      【TAG】テーブル形式の <td> タグを使用するかどうか[yes/no/false]を指定します(初期値:yes)。
      パラメータ:
      flag - TDタグ使用 [yes:tdタグを使用/no:ラベルとフィールド/false:フィールドのみ]
      変更履歴:
      2.0.0.8 (2002/10/09) yes/no/false で指定するように変更, 5.5.1.0 (2012/04/03) エラーメッセージ変更, 6.3.4.0 (2015/08/01) Arrays.toString から String.join に置き換え。, 6.4.3.4 (2016/03/11) String配列 から、Setに置き換えます。
      説明:
      初期値は、使用する("yes") です。
    • setColspan

      public void setColspan(String sp)
      【TAG】フィールド部分の colspan を指定します。
      パラメータ:
      sp - フィールド部分のcolspan
      変更履歴:
      3.0.1.3 (2003/03/11) colspan 属性を追加。
      説明:
      通常は、ラベルとフィールドが、別のtdで囲われます。しかし、場合によっては、 フィールド部の長いカラムがある場合、上下のカラムとの位置関係がおかしくなり、 ラベルとフィールドが離れて表示されるケースがあります。 この場合、長いフィールド部を持つカラムに、colspan 属性を指定すると、 その分のカラムを割り当てることにより、上下のカラムとの位置関係を 調節することが可能になります。 通常は、3 を指定して、tdが、フィールド、ラベル、フィールドの 組み合わせ部分に、長いフィールドが適用されるように使用します。 <og:select name="CDK" colspan="3" />
    • setRowspan

      public void setRowspan(String sp)
      【TAG】ラベル、フィールド共に rowspan を指定します。
      パラメータ:
      sp - ラベル、フィールド部分のrowspan
      変更履歴:
      6.2.0.0 (2015/02/27) rowspan 属性を追加
      説明:
      通常は、ラベルとフィールドが、別のtdで囲われます。rowspan は、 そのどちらの TDフィールドにも、設定します。 初期値は、rowspan を付けないです。 <og:select name="CDK" rowspan="3" />
    • setValue

      public void setValue(String val)
      【TAG】値を指定します。
      パラメータ:
      val - 値
      変更履歴:
      3.5.4.0 (2003/11/25) 新規作成, 5.0.2.0 (2009/11/01) 複数パラメーターの選択に対応
      説明:
      ここで指定された値が、optionタグの値と同じであれば、選択状態になります。 <og:select name="CDC" value="{@ABC}" defaultVal="XYZ" > <og:option value="ABC" lbl="CDC1" /> <og:option value="XYZ" lbl="CDC2" /> </og:select>
    • 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 - 親カラム名
      変更履歴:
      4.3.6.0 (2009/04/01)
      説明:
      親子関係のカラムを作成する場合に利用します。 queryOptionタグとセットで利用して下さい。 ※詳細はcolumnTagのeventColumn属性の説明をご覧下さい。
    • setEventValue

      public void setEventValue(String val)
      【TAG】eventColumn使用時の値を、SQL文から求めるためのqueryをセットします。
      パラメータ:
      val - パラメータ
      変更履歴:
      6.3.4.0 (2015/08/01) eventValue 追加
      説明:
      eventColumn利用時は{@XXXX}はリクエストパラメータではなく xxxカラムの実際の値が利用されます。
    • setEventURL

      public void setEventURL(String url)
      【TAG】イベントカラム指定時に呼び出すURLを指定します。
      パラメータ:
      url - 呼び出すURL
      変更履歴:
      4.3.6.0 (2009/04/01)
      説明:
      イベントカラム指定時に部品を作成するJSPを指定します。 初期値はシステムリソースのEVENT_COLUMN_URLです。 (例:eventURL="makeColumn_custom.jsp") ※詳細はcolumnTagのeventURL属性の説明をご覧下さい。
    • 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 - 初期値
      変更履歴:
      3.5.4.0 (2003/11/25) 新規作成, 5.0.2.0 (2009/11/01) 複数パラメーターの選択に対応
      説明:
      value属性に値がセットされていないときに、この初期値を使用します。 なお、commandがRENEWの場合は、このdefaultValは適用されません。 これは、defaultValの値が埋め込まれた項目が存在する画面に戻った際に、 defaultValの項目の値がnullとなっていた場合に、defaultValの値が復元されると、 検索結果との不一致が発生するためです。
    • setAddNoValue

      public void setAddNoValue(String flag)
      【TAG】値なしのOptionを含めるかどうか[true/false]を指定します(初期値:false)。
      パラメータ:
      flag - 値なしのOptionの有無 [true:含める/それ以外:含めない]
      変更履歴:
      5.1.9.0 (2010/08/01) 新規追加
      説明:
      カラムがプルダウンメニュー形式の場合、選択肢には通常データベース登録できる候補が 並びます。しかし、検索時には、候補を絞りたくない(指定しない)場合があり、 その様な場合には、値なしのOptionを含める(true)ことで、対応可能です。 初期値:false(値なしのOptionを含めない)は、過去の互換性を重視しているため、column タグと異なります。
    • setAddKeyLabel

      public void setAddKeyLabel(String flag)
      【TAG】セレクトメニューの場合、キー:ラベル形式で表示するかどうか[true/false/null]を指定します(初期値:null)。
      パラメータ:
      flag - キー:ラベル形式表示 [true:キー:ラベル形式/false:ラベルのみ/null:指定通り]
      変更履歴:
      6.0.4.0 (2014/11/28) キー:ラベル形式で表示するかどうか。新規追加
      説明:
      カラムがプルダウンメニュー形式の場合、キー:ラベル形式で表示するか、ラベルだけで表示するかを 選択できます。 true を指定すると、「強制的に」キー:ラベル形式で表示します。 false の場合は、「強制的に」ラベルのみで表示されます。 初期値の null の場合、コードリソースや、SQL文に準拠した指定通りの形式で表示します。 <og:column name="CDC" addKeyLabel="true" />
    • getAddKeyLabel

      セレクトメニューの場合、キー:ラベル形式で表示するかどうか[true/false/null]を返します。 これは、上位入れ子のタグの OptionTag で、addKeyLabel を取り出して、 true であれば、キー:ラベル形式 のオプションを、#addOption( String ) で 登録させます。
      定義:
      getAddKeyLabel インタフェース内 OptionAncestorIF
      戻り値:
      true:キー:ラベル形式/false:ラベルのみ/null:指定通り
      関連項目:
      変更履歴:
      6.0.4.0 (2014/11/28) キー:ラベル形式で表示するかどうか。新規追加
    • 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関数
      変更履歴:
      5.5.4.0 (2012/07/02) 新規追加, 6.9.8.0 (2018/05/28) パラメータ引数が、未設定の場合の考慮不足
      説明:
      eventColumnの動作終了後に実行するCallback関数の指定を行います。 関数名のみを指定して下さい。  ex) sampleCallback()を実行する場合はeventCallback="sampleCallback" 実行する関数の第一引数には自動的に次の要素が入った配列が渡されます  [0] 変更された子カラムのID属性値  [1] evnetColumn実行後の子カラムの値  [2] eventColumn実行前の子カラムの値 この属性は、optionAttributesへの設定と同様の動作を行います。
    • setUseRealTimeCheck

      public void setUseRealTimeCheck(String flag)
      【TAG】リアルタイムチェックを行うかどうかを指定します(初期値:true)。
      パラメータ:
      flag - リアルタイムチェックを行うかどうか [true:行う/false:行わない]
      変更履歴:
      5.9.32.2 (2018/05/18) 新規追加, 6.9.8.0 (2018/05/28) Ver5 とロジックを合わせます。
      説明:
      カラム単位でリアルタイムチェックを行うかどうかを設定をします。 タグに独自属性としてrealTimeCheck="true/false"を追記します。 falseを設定した場合にチェックが行われなくなります。 初期値はリアルタイムチェックを行う(true)です。 この属性は、optionAttributesへの設定と同様の動作を行います。 引数の文字列の、true/false 判定を行っていません。そのままの文字列が設定されます。 JavaScript 側では、false 判定のみ行っているので、不正な文字列の場合は、 初期値(true:リアルタイムチェックを行う)が適用されます。 これは、Ver5 とロジックを合わせておくための処置です。
    • toString

      public String toString()
      このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。
      オーバーライド:
      toString クラス内 CommonTagSupport
      戻り値:
      このクラスの文字列表現
      このメソッドは、nullを返しません