クラス QueryOptionTag
- java.lang.Object
-
- javax.servlet.jsp.tagext.TagSupport
-
- javax.servlet.jsp.tagext.BodyTagSupport
-
- org.opengion.hayabusa.taglib.CommonTagSupport
-
- org.opengion.hayabusa.taglib.QueryOptionTag
-
- すべての実装されたインタフェース:
java.io.Serializable
,BodyTag
,IterationTag
,JspTag
,Tag
,TryCatchFinally
public class QueryOptionTag extends CommonTagSupport
プルダウンメニューの選択項目を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>
- バージョン
- 4.0
- 作成者
- Kazuhiko Hasegawa
- 導入されたバージョン:
- JDK5.0,
-
-
フィールドの概要
-
クラスから継承されたフィールド org.opengion.hayabusa.taglib.CommonTagSupport
BR, BUFFER_MIDDLE, CR
-
クラスから継承されたフィールド 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
-
-
コンストラクタの概要
コンストラクタ コンストラクタ 説明 QueryOptionTag()
デフォルトコンストラクター
-
メソッドの概要
すべてのメソッド インスタンス・メソッド concreteメソッド 修飾子とタイプ メソッド 説明 int
doAfterBody()
Taglibのタグ本体を処理する doAfterBody() を オーバーライドします。int
doEndTag()
Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。int
doStartTag()
Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。protected void
release2()
タグリブオブジェクトをリリースします。void
setAddKey(java.lang.String id)
【TAG】項目が一つだけの場合のラベルリソースに、キー情報を追加するかどうかを指定します(初期値:false)。void
setClassUseNo(java.lang.String no)
【TAG】オプションに追加する class 属性の カラム番号を指定します(初期値:使用しない(-1))。void
setDbid(java.lang.String id)
【TAG】(通常は使いません)Queryオブジェクトを作成する時のDB接続IDを指定します(初期値:null)。void
setDefaultVal(java.lang.String val)
【TAG】value属性に値がセットされていないとき使用する、初期値を指定します。void
setDisabledUseNo(java.lang.String no)
【TAG】オプションに追加する disabled 属性の カラム番号を指定します(初期値:使用しない(-1))。void
setGroupUseNo(java.lang.String no)
【TAG】オプションのグループ化を行うカラム番号を指定します(初期値:使用しない(-1))。void
setQuotCheck(java.lang.String flag)
【TAG】リクエスト情報の シングルクォート(') 存在チェックを実施するかどうか[true/false]を設定します (初期値:USE_SQL_INJECTION_CHECK[=])。void
setSeparator(java.lang.String sep)
【TAG】複数のラベルを合成するときに使用する項目区切り文字をセットします(初期値:スペース)。void
setStyleUseNo(java.lang.String no)
【TAG】オプションに追加する style 属性の カラム番号を指定します(初期値:使用しない(-1))。protected void
setTableModel(DBTableModel table)
DBTableModelをセットします。void
setTitleUseNo(java.lang.String no)
【TAG】オプションに追加する title 属性の カラム番号を指定します。void
setValue(java.lang.String val)
【TAG】Optionの初期値で選ばれる値を指定します。void
setXssCheck(java.lang.String flag)
【TAG】リクエスト情報の HTMLTag開始/終了文字(><) 存在チェックを実施するかどうか[true/false]を設定します (初期値:USE_XSS_CHECK[=])。java.lang.String
toString()
このオブジェクトの文字列表現を返します。-
クラスから継承されたメソッド org.opengion.hayabusa.taglib.CommonTagSupport
add, add, addEventColumn, addEventColumn, check, commitTableObject, debugPrint, doCatch, doFinally, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getContextAttribute, getContextPath, getCookie, getCSVParameter, getCSVParameter, getDataCondition, getDateFormat, getDBColumn, getDBFunctionName, getDocumentLink, getGUIInfo, getGUIInfoAttri, getHostName, getLabel, getLabelInterface, getLanguage, getLASTAttri, getLongLabel, getMsg, getMsglbl, getNVLAttri, getObject, getParameterNames, getParameterRows, getRequest, getRequestAttribute, getRequestCacheData, getRequestMethod, getRequestParameter, getRequestParameterValues, getRequestValue, getRequestValue, getRequestValues, getReservedParameter, getReservedValue, getResource, getSanitizedBodyString, getScope, getSessionAttribute, getSubstrAttri, getSumRequestValue, getTagName, getTransaction, getUser, getUserEditInfo, getUserInfo, getValsAttri, 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, useTag, useXssCheck
-
クラスから継承されたメソッド javax.servlet.jsp.tagext.BodyTagSupport
doInitBody, getBodyContent, getPreviousOut, release, setBodyContent
-
クラスから継承されたメソッド javax.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
-
インタフェースから継承されたメソッド javax.servlet.jsp.tagext.Tag
getParent, setPageContext, setParent
-
-
-
-
メソッドの詳細
-
doStartTag
public int 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
public int 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 に移動
-
doEndTag
public int 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
protected void 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
protected void setTableModel(DBTableModel table)
DBTableModelをセットします。 サブクラスより、DBTableModelをセットするのに使います。- パラメータ:
table
- DBTableModelオブジェクト- 変更履歴:
- 3.7.1.0 (2005/04/26) 新規追加
-
setValue
public void setValue(java.lang.String val)
【TAG】Optionの初期値で選ばれる値を指定します。- パラメータ:
val
- Optionの初期値で選ばれる値- 説明:
- Optionの初期値で選ばれる値を指定します。
-
setDefaultVal
public void setDefaultVal(java.lang.String val)
【TAG】value属性に値がセットされていないとき使用する、初期値を指定します。- パラメータ:
val
- 初期値- 説明:
- value属性に値がセットされていないときに、この初期値を使用します。
- 変更履歴:
- 3.3.2.0 (2003/07/07) defaultVal 属性の追加。(新規作成)
-
setSeparator
public void setSeparator(java.lang.String sep)
【TAG】複数のラベルを合成するときに使用する項目区切り文字をセットします(初期値:スペース)。- パラメータ:
sep
- 項目区切り文字- 説明:
- 初期値は、スペースです。
- 変更履歴:
- 3.0.1.0 (2003/03/03) セパレーターを指定できる様に変更。
-
setClassUseNo
public void setClassUseNo(java.lang.String no)
【TAG】オプションに追加する class 属性の カラム番号を指定します(初期値:使用しない(-1))。- パラメータ:
no
- オプションに追加するクラス属性- 説明:
- オプションは、データベースを検索して作成されますが、そのSQL文のカラム情報を 使用して オプションに class 属性を追加します。 各オプションに色をつける場合は、この class 属性に対応する CSS ファイルを用意します。 ここでは、class 属性に使用する SQL文の カラム番号( 先頭が 0 ) を指定します。 通常、カラム番号=0 は キー情報、=1 はラベル情報 です。2 か 3 を指定します。 初期値は、使用しない(-1)です。
- 変更履歴:
- 3.8.5.2 (2006/06/09) 新規追加
-
setStyleUseNo
public void setStyleUseNo(java.lang.String no)
【TAG】オプションに追加する style 属性の カラム番号を指定します(初期値:使用しない(-1))。- パラメータ:
no
- オプションに追加するstyle 属性- 説明:
- オプションは、データベースを検索して作成されますが、そのSQL文のカラム情報を 使用して オプションタグにstyle 属性を追加します。 通常、カラム番号=0 は キー情報、=1 はラベル情報 です。2 か 3 を指定します。 初期値は、使用しない(-1)です。
- 変更履歴:
- 6.2.0.0 (2015/02/27) コードリソースのパラメータの指定方法を変更します。
-
setDisabledUseNo
public void setDisabledUseNo(java.lang.String no)
【TAG】オプションに追加する disabled 属性の カラム番号を指定します(初期値:使用しない(-1))。- パラメータ:
no
- オプションに追加するdisabled 属性- 説明:
- オプションは、データベースを検索して作成されますが、そのSQL文のカラム情報を 使用して オプションタグにdisabled 属性を追加します。 設定する値は、"true" か、"disabled" の場合のみ、disabled になります。 通常、カラム番号=0 は キー情報、=1 はラベル情報 です。2 か 3 を指定します。 初期値は、使用しない(-1)です。
- 変更履歴:
- 6.2.0.0 (2015/02/27) コードリソースのパラメータの指定方法を変更します。
-
setGroupUseNo
public void setGroupUseNo(java.lang.String no)
【TAG】オプションのグループ化を行うカラム番号を指定します(初期値:使用しない(-1))。- パラメータ:
no
- キーブレイク時に追加するグループ文字- 説明:
- オプションは、データベースを検索して作成されますが、そのSQL文のカラム情報を 使用して オプションをグループ化します。グループ化は optgroup要素をブレイク時に 出力する事で対応します。 ここでは、グループ化に使用する SQL文の カラム番号( 先頭が 0 ) を指定します。 通常、カラム番号=0 は キー情報、=1 はラベル情報 です。2 か 3 を指定します。 初期値は、使用しない(-1)です。
- 変更履歴:
- 3.8.5.2 (2006/06/09) 新規追加
-
setQuotCheck
public void setQuotCheck(java.lang.String flag)
【TAG】リクエスト情報の シングルクォート(') 存在チェックを実施するかどうか[true/false]を設定します (初期値:USE_SQL_INJECTION_CHECK[=])。- パラメータ:
flag
- クォートチェック [true:する/それ以外:しない]- 関連項目:
SystemData.USE_SQL_INJECTION_CHECK
- 説明:
- SQLインジェクション対策の一つとして、暫定的ではありますが、SQLのパラメータに 渡す文字列にシングルクォート(') を許さない設定にすれば、ある程度は防止できます。 数字タイプの引数には、 or 5=5 などのシングルクォートを使用しないコードを埋めても、 数字チェックで検出可能です。文字タイプの場合は、必ず (')をはずして、 ' or 'A' like 'A のような形式になる為、(')チェックだけでも有効です。 (') が含まれていたエラーにする(true)/かノーチェックか(false)を指定します。 (初期値:システム定数のUSE_SQL_INJECTION_CHECK[=])。
- 変更履歴:
- 4.0.0.0 (2005/08/31) 新規追加
-
setDbid
public void setDbid(java.lang.String id)
【TAG】(通常は使いません)Queryオブジェクトを作成する時のDB接続IDを指定します(初期値:null)。- パラメータ:
id
- データベース接続ID- 説明:
- Queryオブジェクトを作成する時のDB接続IDを指定します。 これは、システムリソースで、DEFAULT_DB_URL 等で指定している データベース接続先 情報に、XX_DB_URL を定義することで、 dbid="XX" とすると、この 接続先を使用して データベースにアクセスできます。
-
setAddKey
public void setAddKey(java.lang.String id)
【TAG】項目が一つだけの場合のラベルリソースに、キー情報を追加するかどうかを指定します(初期値:false)。- パラメータ:
id
- データベース接続ID- 説明:
- Queryオブジェクトの項目が一つの場合、ラベル部には、ラベルリソースを使用します。 この時、ラベル無しの場合は、キーが表示されますが、ラベルありの場合は、キーは表示されず ラベルのみ表示されます。 都合によっては、キーも表示したい場合がありますので、その様なケースでは、 addKey = "true を設定する事で、キー:ラベル のセットをラベルとして扱います。 初期値はfalse(キーは付加しない)です。
-
setXssCheck
public void setXssCheck(java.lang.String flag)
【TAG】リクエスト情報の HTMLTag開始/終了文字(><) 存在チェックを実施するかどうか[true/false]を設定します (初期値:USE_XSS_CHECK[=])。- パラメータ:
flag
- XSSチェック [true:する/false:しない]- 関連項目:
SystemData.USE_XSS_CHECK
- 説明:
- クロスサイトスクリプティング(XSS)対策の一環としてless/greater than signについてのチェックを行います。 (><) が含まれていたエラーにする(true)/かノーチェックか(false)を指定します。 (初期値:システム定数のUSE_XSS_CHECK[=])。
- 変更履歴:
- 5.0.0.2 (2009/09/15) 新規追加
-
setTitleUseNo
public void setTitleUseNo(java.lang.String no)
【TAG】オプションに追加する title 属性の カラム番号を指定します。- パラメータ:
no
- オプションに追加するtitle属性- 説明:
- オプションは、データベースを検索して作成されますが、そのSQL文のカラム情報を 使用して オプションに title 属性を追加します。 title属性はマウスオーバー時にツールチップとして表示されるため、 プルダウンの横幅を短くしたい場合に有効です。 通常、カラム番号=0 は キー情報、=1 はラベル情報 です。2 か 3 を指定します。 初期値は、使用しない(-1)です。
- 変更履歴:
- 4.3.8.0 (2009/08/01) 新規追加
-
toString
public java.lang.String toString()
このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。- オーバーライド:
toString
クラス内CommonTagSupport
- 戻り値:
- このクラスの文字列表現
- このメソッドは、nullを返しません
-
-