クラス QueryOptionTag
java.lang.Object
jakarta.servlet.jsp.tagext.TagSupport
jakarta.servlet.jsp.tagext.BodyTagSupport
org.opengion.hayabusa.taglib.CommonTagSupport
org.opengion.hayabusa.taglib.QueryOptionTag
- すべての実装されたインタフェース:
BodyTag
,IterationTag
,JspTag
,Tag
,TryCatchFinally
,Serializable
プルダウンメニューの選択項目をSELECT文の結果から作成するタグです。
基本的には、queryタグと同じ使い方をします。
このオブジェクトに queryId を与えることにより、queryId に対応した Queryオブジェクト
(のサブクラスのオブジェクト)が作成されます。
ここで指定するSELECT文は、『SELECT KEY、LABEL1、LABEL2、・・・ FROM TABLE ・・・』形式 を
している必要があります。特別なケースとして、『SELECT KEY FROM TABLE ・・・』形式の場合は、
LABEL に KEY が 使用されます。
SystemData の USE_SQL_INJECTION_CHECK が true か、quotCheck 属性が true の場合は、
SQLインジェクション対策用のシングルクォートチェックを行います。リクエスト引数に
シングルクォート(')が含まれると、エラーになります。
同様にUSE_XSS_CHECKがtrueか、xssCheck属性がtrueの場合は、
クロスサイトススクリプティング(XSS)対策のためless/greater than signのチェックを行います。
※ このタグは、Transaction タグの対象です。
- 関連項目:
- 機能分類
- 選択データ制御
- 形式サンプル:
- ●形式: <og:queryOption > SELECT文 </og:queryOption > ●body:あり(EVAL_BODY_BUFFERED:BODYを評価し、{@XXXX} を解析します) ●Tag定義: <og:queryOption value 【TAG】Optionの初期値で選ばれる値を指定します separator 【TAG】複数のラベルを合成するときに使用する項目区切り文字をセットします(初期値:スペース) defaultVal 【TAG】value値がNULLの場合に使用される初期値を設定します language 【TAG】タグ内部で使用する言語コード[ja/en/zh/…]を指定します quotCheck 【TAG】リクエスト情報の シングルクォート(') 存在チェックを実施するかどうか[true/false]を設定します (初期値:USE_SQL_INJECTION_CHECK[=true]) dbid 【TAG】(通常は使いません)Queryオブジェクトを作成する時のDB接続IDを指定します(初期値:null) addKey 【TAG】項目が一つだけの場合のラベルリソースに、キー情報を追加するかどうかを指定します(初期値:false) classUseNo 【TAG】オプションに追加する class 属性の カラム番号を指定します styleUseNo 【TAG】オプションに追加する style 属性の カラム番号を指定します disabledUseNo 【TAG】オプションに追加する disabled 属性の カラム番号を指定します groupUseNo 【TAG】オプションのグループ化を行うカラム番号を指定します titleUseNo 【TAG】オプションに追加する title 属性の カラム番号を指定します xssCheck 【TAG】リクエスト情報の HTMLTag開始/終了文字(><) 存在チェックを実施するかどうか[true/false]を設定します (初期値:USE_XSS_CHECK[=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:queryOption> ●使用例 <og:select name="CDC" > <og:queryOption> select NOSYN,NOSYN,NMSYN from DB01 ORDER BY 1 </og:queryOption> </og:select> <og:select name="CDC" > 選択項目の一番上に空白をセットしたいときoptionタグを組合せることも可能です。 <og:option lbl="" /> 初期値を設定したいときはvalue属性を使います。 <og:queryOption value="61200" separator=":" > select CDBK,CDBK,NMBK from DB02 ORDER BY 1 </og:queryOption> </og:select>
- 導入されたバージョン:
- JDK5.0,
-
フィールドの概要
クラスから継承されたフィールド org.opengion.hayabusa.taglib.CommonTagSupport
BR, BUFFER_MIDDLE, CR
クラスから継承されたフィールド jakarta.servlet.jsp.tagext.BodyTagSupport
bodyContent
クラスから継承されたフィールド jakarta.servlet.jsp.tagext.TagSupport
id, pageContext
インタフェースから継承されたフィールド jakarta.servlet.jsp.tagext.BodyTag
EVAL_BODY_BUFFERED, EVAL_BODY_TAG
インタフェースから継承されたフィールド jakarta.servlet.jsp.tagext.IterationTag
EVAL_BODY_AGAIN
インタフェースから継承されたフィールド jakarta.servlet.jsp.tagext.Tag
EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE
-
コンストラクタの概要
コンストラクタ -
メソッドの概要
修飾子とタイプメソッド説明int
Taglibのタグ本体を処理する doAfterBody() を オーバーライドします。int
doEndTag()
Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。int
Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。protected void
release2()
タグリブオブジェクトをリリースします。void
【TAG】項目が一つだけの場合のラベルリソースに、キー情報を追加するかどうかを指定します(初期値:false)。void
setClassUseNo
(String no) 【TAG】オプションに追加する class 属性の カラム番号を指定します(初期値:使用しない(-1))。void
【TAG】(通常は使いません)Queryオブジェクトを作成する時のDB接続IDを指定します(初期値:null)。void
setDefaultVal
(String val) 【TAG】value属性に値がセットされていないとき使用する、初期値を指定します。void
【TAG】オプションに追加する disabled 属性の カラム番号を指定します(初期値:使用しない(-1))。void
setGroupUseNo
(String no) 【TAG】オプションのグループ化を行うカラム番号を指定します(初期値:使用しない(-1))。void
setQuotCheck
(String flag) 【TAG】リクエスト情報の シングルクォート(') 存在チェックを実施するかどうか[true/false]を設定します (初期値:USE_SQL_INJECTION_CHECK[=])。void
setSeparator
(String sep) 【TAG】複数のラベルを合成するときに使用する項目区切り文字をセットします(初期値:スペース)。void
setStyleUseNo
(String no) 【TAG】オプションに追加する style 属性の カラム番号を指定します(初期値:使用しない(-1))。protected void
setTableModel
(DBTableModel table) DBTableModelをセットします。void
setTitleUseNo
(String no) 【TAG】オプションに追加する title 属性の カラム番号を指定します。void
【TAG】Optionの初期値で選ばれる値を指定します。void
setXssCheck
(String flag) 【TAG】リクエスト情報の HTMLTag開始/終了文字(><) 存在チェックを実施するかどうか[true/false]を設定します (初期値:USE_XSS_CHECK[=])。toString()
このオブジェクトの文字列表現を返します。クラスから継承されたメソッド org.opengion.hayabusa.taglib.CommonTagSupport
add, add, addEventColumn, addEventColumn, check, commitTableObject, debugPrint, debugPrint, doCatch, doFinally, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getContextAttribute, getContextPath, getCookie, getCSVParameter, getCSVParameter, getDateFormat, getDBColumn, getDBFunctionName, getDocumentLink, getGUIInfo, getGUIInfoAttri, getHostName, getLabel, getLabelInterface, getLanguage, getLongLabel, getMsg, getMsglbl, getObject, getParameterNames, getParameterRows, getRequest, getRequestAttribute, getRequestCacheData, getRequestMethod, getRequestParameter, getRequestParameterValues, getRequestValue, getRequestValue, getRequestValues, getReservedParameter, getReservedValue, getResource, getSanitizedBodyString, getScope, getSessionAttribute, getTagName, getTransaction, getUser, getUserEditInfo, getUserInfo, isAjaxSubmitRequest, isDebug, isNoTransitionRequest, isNull, jspPrint, makeUrl, removeContextAttribute, removeObject, removeRequestAttribute, removeSessionAttribute, set, setAjaxSubmitRequest, setCaseIf, 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, useStrict, useTag, useXssCheck
クラスから継承されたメソッド jakarta.servlet.jsp.tagext.BodyTagSupport
doInitBody, getBodyContent, getPreviousOut, release, setBodyContent
クラスから継承されたメソッド jakarta.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
インタフェースから継承されたメソッド jakarta.servlet.jsp.tagext.Tag
getParent, setPageContext, setParent
-
コンストラクタの詳細
-
QueryOptionTag
public QueryOptionTag()デフォルトコンストラクター- 変更履歴:
- 6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor.
-
-
メソッドの詳細
-
doStartTag
Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。- 定義:
doStartTag
インタフェース内Tag
- オーバーライド:
doStartTag
クラス内CommonTagSupport
- 戻り値:
- 後続処理の指示( EVAL_BODY_BUFFERED )
- 変更履歴:
- 5.2.2.0 (2010/11/01) caseKey、caseVal 属性対応, 6.4.8.1 (2016/07/02) xssCheckを、doStartTag に移動
-
doAfterBody
Taglibのタグ本体を処理する doAfterBody() を オーバーライドします。- 定義:
doAfterBody
インタフェース内IterationTag
- オーバーライド:
doAfterBody
クラス内CommonTagSupport
- 戻り値:
- 後続処理の指示(SKIP_BODY)
- 変更履歴:
- 3.1.1.0 (2003/03/28) ボディの内容を取得する処理を、CommonTagSupport で行う。, 3.6.0.8 (2004/11/19) エラー発生時に確実にリリースされるように try finally 追加, 3.7.1.0 (2005/04/26) DBTableModel がすでにセットされている場合は、SQL処理不要。, 4.0.0.0 (2005/01/31) lang ⇒ ResourceManager へ変更, 4.0.0.0 (2005/08/31) useQuotCheck() によるSQLインジェクション対策, 3.8.6.3 (2006/11/30) SQL 文の前後のスペースを取り除きます。, 3.8.7.0 (2006/12/15) アクセスログ取得の為、ApplicationInfoオブジェクトを設定, 4.3.6.0 (2009/04/01) EventColumn対応, 5.0.0.5 (2009/08/28) XSS対策, 5.1.7.0 (2010/06/01) 動的プルダウン実装見直し, 5.1.9.0 (2010/08/01) TransactionTag 対応。上位に TransactionTag があれば、そこからConnection をもらう。, 5.3.7.0 (2011/07/01) TransactionReal の引数変更, 5.3.8.0 (2011/08/01) Transaction発生箇所でclose(), 6.3.1.1 (2015/07/10) BodyString,BodyRawStringは、CommonTagSupport で、trim() します。, 6.3.6.1 (2015/08/28) Transaction でAutoCloseableを使用したtry-with-resources構築に対応。, 6.3.6.1 (2015/08/28) QueryFactory.close( Query ) 廃止。Queryはキャッシュしません。, 6.4.8.1 (2016/07/02) xssCheckを、doStartTag に移動, 8.0.2.0 (2021/11/30) 検索実行前に、SQL文字をdebugPrint出来るように修正, 8.5.4.2 (2024/01/12) PMD 7.0.0 SingularField 対応
-
doEndTag
Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。- 定義:
doEndTag
インタフェース内Tag
- オーバーライド:
doEndTag
クラス内CommonTagSupport
- 戻り値:
- 後続処理の指示
- 変更履歴:
- 3.1.1.2 (2003/04/04) Tomcat4.1 対応。release2() を doEndTag()で呼ぶ。, 3.3.2.0 (2003/07/07) defaultVal 属性の追加。, 3.5.4.0 (2003/11/25) selVal 属性を追加。, 5.0.2.0 (2009/11/01) 複数パラメーターの選択に対応, 5.1.7.0 (2010/06/01) 動的プルダウン実装見直し, 5.2.2.0 (2010/11/01) caseKey、caseVal 属性対応, 5.7.1.0 (2013/12/06) SelectTag ⇒ OptionAncestorIF に変更して、DatalistTag にも対応。
-
release2
タグリブオブジェクトをリリースします。 キャッシュされて再利用されるので、フィールドの初期設定を行います。- オーバーライド:
release2
クラス内CommonTagSupport
- 変更履歴:
- 2.0.0.4 (2002/09/27) カスタムタグの release() メソッドを、追加, 3.0.1.0 (2003/03/03) セパレーターを指定できる様に変更。, 3.1.1.2 (2003/04/04) Tomcat4.1 対応。release2() を doEndTag()で呼ぶ。, 3.3.2.0 (2003/07/07) defaultVal 属性の追加。, 3.8.5.2 (2006/06/09) classUseNo , groupUseNo 属性の追加。, 4.0.0.0 (2005/08/31) quotCheck , addKey 属性の追加, 4.0.0.0 (2007/10/10) dbid の初期値を、"DEFAULT" から null に変更, 5.1.7.0 (2010/06/01) 動的プルダウン実装見直し, 6.2.0.0 (2015/02/27) コードリソースのパラメータの指定方法を変更します。styleUseNo,disabledUseNo 属性追加
-
setTableModel
DBTableModelをセットします。 サブクラスより、DBTableModelをセットするのに使います。- パラメータ:
table
- DBTableModelオブジェクト- 変更履歴:
- 3.7.1.0 (2005/04/26) 新規追加
-
setValue
【TAG】Optionの初期値で選ばれる値を指定します。- パラメータ:
val
- Optionの初期値で選ばれる値- 説明:
- Optionの初期値で選ばれる値を指定します。
-
setDefaultVal
【TAG】value属性に値がセットされていないとき使用する、初期値を指定します。- パラメータ:
val
- 初期値- 変更履歴:
- 3.3.2.0 (2003/07/07) defaultVal 属性の追加。(新規作成)
- 説明:
- value属性に値がセットされていないときに、この初期値を使用します。 8.4.3.0 (2023/03/31) defaultVal の設定値の取り扱い(変更なし) {@XXXX} は、リクエスト変数 ⇒ valueタグセット値 を確認 値がなければ、""(空文字列) となる。 通常の固定値は、そのまま使用される(""(空文字列)も有効 defaultVal属性を使用しない場合は、 null のままで、初期値として適用されるので、BODY部のSQL文は必須です。
-
setSeparator
【TAG】複数のラベルを合成するときに使用する項目区切り文字をセットします(初期値:スペース)。- パラメータ:
sep
- 項目区切り文字- 変更履歴:
- 3.0.1.0 (2003/03/03) セパレーターを指定できる様に変更。
- 説明:
- 初期値は、スペースです。
-
setClassUseNo
【TAG】オプションに追加する class 属性の カラム番号を指定します(初期値:使用しない(-1))。- パラメータ:
no
- オプションに追加するクラス属性- 変更履歴:
- 3.8.5.2 (2006/06/09) 新規追加
- 説明:
- オプションは、データベースを検索して作成されますが、そのSQL文のカラム情報を 使用して オプションに class 属性を追加します。 各オプションに色をつける場合は、この class 属性に対応する CSS ファイルを用意します。 ここでは、class 属性に使用する SQL文の カラム番号( 先頭が 0 ) を指定します。 通常、カラム番号=0 は キー情報、=1 はラベル情報 です。2 か 3 を指定します。 初期値は、使用しない(-1)です。
-
setStyleUseNo
【TAG】オプションに追加する style 属性の カラム番号を指定します(初期値:使用しない(-1))。- パラメータ:
no
- オプションに追加するstyle 属性- 変更履歴:
- 6.2.0.0 (2015/02/27) コードリソースのパラメータの指定方法を変更します。
- 説明:
- オプションは、データベースを検索して作成されますが、そのSQL文のカラム情報を 使用して オプションタグにstyle 属性を追加します。 通常、カラム番号=0 は キー情報、=1 はラベル情報 です。2 か 3 を指定します。 初期値は、使用しない(-1)です。
-
setDisabledUseNo
【TAG】オプションに追加する disabled 属性の カラム番号を指定します(初期値:使用しない(-1))。- パラメータ:
no
- オプションに追加するdisabled 属性- 変更履歴:
- 6.2.0.0 (2015/02/27) コードリソースのパラメータの指定方法を変更します。
- 説明:
- オプションは、データベースを検索して作成されますが、そのSQL文のカラム情報を 使用して オプションタグにdisabled 属性を追加します。 設定する値は、"true" か、"disabled" の場合のみ、disabled になります。 通常、カラム番号=0 は キー情報、=1 はラベル情報 です。2 か 3 を指定します。 初期値は、使用しない(-1)です。
-
setGroupUseNo
【TAG】オプションのグループ化を行うカラム番号を指定します(初期値:使用しない(-1))。- パラメータ:
no
- キーブレイク時に追加するグループ文字- 変更履歴:
- 3.8.5.2 (2006/06/09) 新規追加
- 説明:
- オプションは、データベースを検索して作成されますが、そのSQL文のカラム情報を 使用して オプションをグループ化します。グループ化は optgroup要素をブレイク時に 出力する事で対応します。 ここでは、グループ化に使用する SQL文の カラム番号( 先頭が 0 ) を指定します。 通常、カラム番号=0 は キー情報、=1 はラベル情報 です。2 か 3 を指定します。 初期値は、使用しない(-1)です。
-
setQuotCheck
【TAG】リクエスト情報の シングルクォート(') 存在チェックを実施するかどうか[true/false]を設定します (初期値:USE_SQL_INJECTION_CHECK[=])。- パラメータ:
flag
- クォートチェック [true:する/それ以外:しない]- 関連項目:
- 変更履歴:
- 4.0.0.0 (2005/08/31) 新規追加
- 説明:
- SQLインジェクション対策の一つとして、暫定的ではありますが、SQLのパラメータに 渡す文字列にシングルクォート(') を許さない設定にすれば、ある程度は防止できます。 数字タイプの引数には、 or 5=5 などのシングルクォートを使用しないコードを埋めても、 数字チェックで検出可能です。文字タイプの場合は、必ず (')をはずして、 ' or 'A' like 'A のような形式になる為、(')チェックだけでも有効です。 (') が含まれていたエラーにする(true)/かノーチェックか(false)を指定します。 (初期値:システム定数のUSE_SQL_INJECTION_CHECK[=])。
-
setDbid
【TAG】(通常は使いません)Queryオブジェクトを作成する時のDB接続IDを指定します(初期値:null)。- パラメータ:
id
- データベース接続ID- 説明:
- Queryオブジェクトを作成する時のDB接続IDを指定します。 これは、システムリソースで、DEFAULT_DB_URL 等で指定している データベース接続先 情報に、XX_DB_URL を定義することで、 dbid="XX" とすると、この接続先を使用して データベースにアクセスできます。
-
setAddKey
【TAG】項目が一つだけの場合のラベルリソースに、キー情報を追加するかどうかを指定します(初期値:false)。- パラメータ:
id
- データベース接続ID- 説明:
- Queryオブジェクトの項目が一つの場合、ラベル部には、ラベルリソースを使用します。 この時、ラベル無しの場合は、キーが表示されますが、ラベルありの場合は、キーは表示されず ラベルのみ表示されます。 都合によっては、キーも表示したい場合がありますので、その様なケースでは、 addKey = "true を設定する事で、キー:ラベル のセットをラベルとして扱います。 初期値はfalse(キーは付加しない)です。
-
setXssCheck
【TAG】リクエスト情報の HTMLTag開始/終了文字(><) 存在チェックを実施するかどうか[true/false]を設定します (初期値:USE_XSS_CHECK[=])。- パラメータ:
flag
- XSSチェック [true:する/false:しない]- 関連項目:
- 変更履歴:
- 5.0.0.2 (2009/09/15) 新規追加
- 説明:
- クロスサイトスクリプティング(XSS)対策の一環としてless/greater than signについてのチェックを行います。 (><) が含まれていたエラーにする(true)/かノーチェックか(false)を指定します。 (初期値:システム定数のUSE_XSS_CHECK[=])。
-
setTitleUseNo
【TAG】オプションに追加する title 属性の カラム番号を指定します。- パラメータ:
no
- オプションに追加するtitle属性- 変更履歴:
- 4.3.8.0 (2009/08/01) 新規追加
- 説明:
- オプションは、データベースを検索して作成されますが、そのSQL文のカラム情報を 使用して オプションに title 属性を追加します。 title属性はマウスオーバー時にツールチップとして表示されるため、 プルダウンの横幅を短くしたい場合に有効です。 通常、カラム番号=0 は キー情報、=1 はラベル情報 です。2 か 3 を指定します。 初期値は、使用しない(-1)です。
-
toString
このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。- オーバーライド:
toString
クラス内CommonTagSupport
- 戻り値:
- このクラスの文字列表現
- このメソッドは、nullを返しません
-