クラス SelectTag

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

public class SelectTag extends AbstractEventSupport implements OptionAncestorIF
プルダウンメニューを作成するHTML拡張タグです。 プルダウンメニュー内の選択肢は、selectタグの内容であるoptionタグ、 またはqueryOptionタグによって指定します。 optionタグがセットされない場合は、name属性の、コードリソース からoption文字列より、 プルダウンメニューの選択肢を作成します。 name 属性に ラベルリソース のキーを与えることで、ロケールにあわせたリソースを使用して、 画面に表示します。ロケールは、ユーザー情報の lang 属性を初期値で使用し、 セットされていない場合は、リクエスト情報のロケールから取得します。 language 属性で定義されている場合は、そちらを優先します。 8.0.0.1 (2021/10/08) 検索機能(絞り機能)付きのプルダウンメニューを作成する為には、文字パラメータに "class=sel2sel" と入力してください。
関連項目:
変更履歴:
8.5.7.0 (2024/03/29) eventColumn 関連の属性を集約した サポートクラス AbstractEventSupport を使用します。, 8.5.7.0 (2024/03/29) rowspan,colspan 属性を集約した サポートクラス AbstractSpanSupport を使用します。
機能分類
選択データ制御
形式サンプル:
●形式:<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 【廃止】JavaScript などの HTML基本タグ以外の属性を、そのままタグとして使用します multiple 【TAG】複数選択を可能(multiple)にします(初期値:未設定) title 【HTML】要素に対する補足的情報(title)を設定します disabled 【TAG】その部品に対して、選択や変更が出来ないように(disabled)指定します(サーバーに送信されない) clazz 【HTML】要素に対して class 属性を設定します language 【TAG】タグ内部で使用する言語コード[ja/en/zh/…]を指定します 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) useAttStrict 【TAG】XHTMLTag に指定されている Attributes のみ使えるかどうか [true/false]を指定します(初期値:true) caseKey 【TAG】このタグ自体を利用するかどうかの条件キーを指定します(初期値:null) caseVal 【TAG】このタグ自体を利用するかどうかの条件値を指定します(初期値:null) caseNN 【TAG】指定の値が、null/ゼロ文字列 でない場合(Not Null=NN)は、このタグは使用されます(初期値:判定しない) caseNull 【TAG】指定の値が、null/ゼロ文字列 の場合は、このタグは使用されます(初期値:判定しない) caseIf 【TAG】指定の値が、true/TRUE文字列の場合は、このタグは使用されます(初期値:判定しない) 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 クラス内 AbstractEventSupport
      変更履歴:
      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 追加, 8.5.7.0 (2024/03/29) eventColumn 関連の属性を集約した サポートクラス AbstractEventSupport を使用します。
    • 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以降ブラウザ標準), 8.0.0.1 (2021/10/08) dbType パラメータのclass属性対応
      このメソッドは、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 - 名称
      説明:
      メニューの名称を指定します。 必須属性の為、DynamicAttributes を経由せず、tld属性に追加しています。 tld属性に追加した分は、タグリブのsetterメソッドが必要です。
    • 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 化する。
    • 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の値が復元されると、 検索結果との不一致が発生するためです。 8.4.3.0 (2023/03/31) defaultVal の設定値の取り扱い(変更なし) {@XXXX} は、リクエスト変数 ⇒ valueタグセット値 を確認 値がなければ、null となる。… 初期値として認識されない。 通常の固定値は、そのまま使用されるが、""(空文字列)の場合は、 null となる。… 初期値として認識されない。 defaultVal属性を使用しない場合は、 null となる。… 初期値として認識されない。
    • 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) キー:ラベル形式で表示するかどうか。新規追加
    • 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 が選択状態に 初期設定されます。 大文字、小文字の種別はなくしますが、指定以外の文字が設定された場合は、エラーになります。
    • 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 化する。
    • setRawParam

      public void setRawParam(String param)
      パラメーター変換({@XXXX})の置き換えをしない状態のパラメーターをセットします。
      定義:
      setRawParam インタフェース内 OptionAncestorIF
      パラメータ:
      param - パラメーター
      関連項目:
      変更履歴:
      5.1.7.0 (2010/06/01) 新規作成(動的プルダウン実装見直し), 5.5.4.0 (2012/07/02) 予約語対応
    • 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 とロジックを合わせます。, 8.5.3.0 (2023/09/08) DynamicAttributes対応
      説明:
      カラム単位でリアルタイムチェックを行うかどうかを設定をします。 タグに独自属性としてrealTimeCheck="true/false"を追記します。 falseを設定した場合にチェックが行われなくなります。 初期値はリアルタイムチェックを行う(true)です。 引数の文字列の、true/false 判定を行っていません。そのままの文字列が設定されます。 JavaScript 側では、false 判定のみ行っているので、不正な文字列の場合は、 初期値(true:リアルタイムチェックを行う)が適用されます。 これは、Ver5 とロジックを合わせておくための処置です。
    • toString

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