openGionopenGion
5.6.6.0

org.opengion.hayabusa.taglib
クラス 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, javax.servlet.jsp.tagext.BodyTag, javax.servlet.jsp.tagext.IterationTag, javax.servlet.jsp.tagext.JspTag, javax.servlet.jsp.tagext.Tag, javax.servlet.jsp.tagext.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:あり

 ●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を指定します
       addKey             【TAG】項目が一つだけの場合のラベルリソースに、キー情報を追加するかどうかを指定します(初期値:false)
       classUseNo         【TAG】オプションに追加する class 属性の カラム番号を指定します
       groupUseNo         【TAG】オプションのグループ化を行うカラム番号を指定します
       titleUseNo         【TAG】オプションに追加する title 属性の カラム番号を指定します
       xssCheck           【TAG】リクエスト情報の HTMLTag開始/終了文字(><) 存在チェックを実施するかどうか[true/false]を設定します (初期値:USE_XSS_CHECK[=true])
       caseKey            【TAG】このタグ自体を利用するかどうかの条件キーを指定します(初期値:null)
       caseVal            【TAG】このタグ自体を利用するかどうかの条件値を指定します(初期値:null)
       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 msg="" />               初期値を設定したいときは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,

フィールドの概要
 
クラス 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()
           
 
メソッドの概要
 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 属性の カラム番号を指定します。
 void setDbid(java.lang.String id)
          【TAG】(通常は使いません)Queryオブジェクトを作成する時のDB接続IDを指定します。
 void setDefaultVal(java.lang.String val)
          【TAG】value値がNULLの場合に使用される初期値を設定します。
 void setGroupUseNo(java.lang.String no)
          【TAG】オプションのグループ化を行うカラム番号を指定します。
 void setQuotCheck(java.lang.String flag)
          【TAG】リクエスト情報の クォーティション(') 存在チェックを実施するかどうか[true/false]を設定します (初期値:USE_SQL_INJECTION_CHECK[=true])。
 void setSeparator(java.lang.String sep)
          【TAG】複数のラベルを合成するときに使用する項目区切り文字をセットします(初期値:スペース)。
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[=true])。
 java.lang.String toString()
          このオブジェクトの文字列表現を返します。
 
クラス org.opengion.hayabusa.taglib.CommonTagSupport から継承されたメソッド
add, add, addEventColumn, addEventColumn, check, check, commitTableObject, debugPrint, doCatch, doFinally, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getContextAttribute, getContextPath, getCookie, getCSVParameter, getDataCondition, getDateFormat, getDBColumn, getDBFunctionName, getDocumentLink, getGUIInfo, getGUIInfoAttri, getLabel, getLabelInterface, getLanguage, getLongLabel, getMsglbl, getNVLAttri, getObject, getParameterNames, getParameterRows, getRequest, getRequestAttribute, getRequestCacheData, getRequestParameter, getRequestParameterValues, getRequestValue, getRequestValue, getRequestValues, getReservedParameter, getReservedValue, getResource, getSanitizedBodyString, getScope, getSessionAttribute, getTagName, getUser, getUserInfo, isAjaxSubmitRequest, isDebug, isNoTransitionRequest, isNull, jspPrint, removeContextAttribute, removeObject, removeRequestAttribute, removeSessionAttribute, set, setAjaxSubmitRequest, setCaseKey, 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
 

コンストラクタの詳細

QueryOptionTag

public QueryOptionTag()
メソッドの詳細

doStartTag

public int doStartTag()
Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。

定義:
インタフェース javax.servlet.jsp.tagext.Tag 内の doStartTag
オーバーライド:
クラス CommonTagSupport 内の doStartTag
戻り値:
後続処理の指示( EVAL_BODY_BUFFERED )
変更履歴:
5.2.2.0 (2010/11/01) caseKey 、caseVal 属性対応

doAfterBody

public int doAfterBody()
Taglibのタグ本体を処理する doAfterBody() を オーバーライドします。

定義:
インタフェース javax.servlet.jsp.tagext.IterationTag 内の doAfterBody
オーバーライド:
クラス CommonTagSupport 内の doAfterBody
戻り値:
後続処理の指示(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()

doEndTag

public int doEndTag()
Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。

定義:
インタフェース javax.servlet.jsp.tagext.Tag 内の doEndTag
オーバーライド:
クラス CommonTagSupport 内の doEndTag
戻り値:
後続処理の指示
変更履歴:
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 属性対応

release2

protected void release2()
タグリブオブジェクトをリリースします。 キャッシュされて再利用されるので、フィールドの初期設定を行います。

オーバーライド:
クラス CommonTagSupport 内の release2
変更履歴:
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) 動的プルダウン実装見直し

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値がNULLの場合に使用される初期値を設定します。

パラメータ:
val - 初期値
説明:
 value値がNULLの場合に、この初期値をセットします。
変更履歴:
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 属性の カラム番号を指定します。

パラメータ:
no - オプションに追加するクラス属性
説明:
 オプションは、データベースを検索して作成されますが、そのSQL文のカラム情報を
 使用して オプションに class 属性を追加します。
 各オプションに色をつける場合は、この class 属性に対応する CSS ファイルを用意します。
 ここでは、class 属性に使用する SQL文の カラム番号( 先頭が 0 ) を指定します。
 通常、カラム番号=0 は キー情報、=1 はラベル情報 です。2 か 3 を指定します。
 初期値は、使用しない(-1)です。
変更履歴:
3.8.5.2 (2006/06/09) 新規追加

setGroupUseNo

public void setGroupUseNo(java.lang.String no)
【TAG】オプションのグループ化を行うカラム番号を指定します。

パラメータ:
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[=true])。

パラメータ:
flag - クォーティションチェック [true:する/それ以外:しない]
関連項目:
SystemData.USE_SQL_INJECTION_CHECK
説明:
 SQLインジェクション対策の一つとして、暫定的ではありますが、SQLのパラメータに
 渡す文字列にクォーティション(') を許さない設定にすれば、ある程度は防止できます。
 数字タイプの引数には、 or 5=5 などのクォーティションを使用しないコードを埋めても、
 数字チェックで検出可能です。文字タイプの場合は、必ず (')をはずして、
 ' or 'A' like 'A のような形式になる為、(')チェックだけでも有効です。
 (') が含まれていたエラーにする(true)/かノーチェックか(false)を指定します。
 (初期値:システム定数のUSE_SQL_INJECTION_CHECK[={@og.value org.opengion.hayabusa.common.SystemData#USE_SQL_INJECTION_CHECK}])。
変更履歴:
4.0.0.0 (2005/08/31) 新規追加

setDbid

public void setDbid(java.lang.String id)
【TAG】(通常は使いません)Queryオブジェクトを作成する時のDB接続IDを指定します。

パラメータ:
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[=true])。

パラメータ:
flag - XSSチェック [true:する/false:しない]
関連項目:
SystemData.USE_XSS_CHECK
説明:
 クロスサイトスクリプティング(XSS)対策の一環としてless/greater than signについてのチェックを行います。
 (><) が含まれていたエラーにする(true)/かノーチェックか(false)を指定します。
 (初期値:システム定数のUSE_XSS_CHECK[={@og.value org.opengion.hayabusa.common.SystemData#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()
このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。

オーバーライド:
クラス CommonTagSupport 内の toString
戻り値:
このクラスの文字列表現

openGion 5.6.6.0

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