public class SqlAndTag extends CommonTagSupport
Where句を作成するための条件を指定します。 このタグのvalue 値に、{@XXXX} 変数が含まれている場合、そのリクエスト値が ない場合は、このタグそのものがなにも出力しません。(つまり条件から消えます。) startKeyは、value を連結する場合の頭に置かれる文字列で、where句の最初には表示されず、 それ以降について、表示されます。(つまり、where VALUE1 and VALUE2 and VALUE3 … です。) startKey の初期値は、"and" です。 multi は、{@XXXX} 変数に、値が複数含まれている場合の処理を規定します。 複数の値とは、同一nameでチェックボックス指定や、メニューでの複数指定した場合、 リクエストが配列で送られます。multi="true" とすると、'xx1','xx2','xx3', ・・・ という 形式に変換されます。 具体的には、"where PN in ( {@PN} )" という文字列に対して、 "where PN in ( 'xx1','xx2','xx3' )" を作成することができます。 multi の初期値は、"false" です。 SystemData の USE_SQL_INJECTION_CHECK が true か、quotCheck 属性が true の場合は、 SQLインジェクション対策用のシングルクォートチェックを行います。リクエスト引数に シングルクォート(')が含まれると、エラーになります。 同様にUSE_XSS_CHECKがtrueか、xssCheck属性がtrueの場合は、 クロスサイトススクリプティング(XSS)対策のためless/greater than signのチェックを行います。 各属性は、{@XXXX} 変数が使用できます。 これは、ServletRequest から、XXXX をキーに値を取り出し,この変数に割り当てます。 つまり、このXXXXをキーにリクエストすれば、この変数に値をセットすることができます。
●形式:<og:and startKey="[and|or|…]" value="…" multi="[false|true]" /> ●body:あり(EVAL_BODY_BUFFERED:BODYを評価し、{@XXXX} を解析します) ●Tag定義: <og:and startKey 【TAG】SQL条件句の最初の演算子を指定します(初期値:and) value 【TAG】条件の値を セットします multi 【TAG】複数の引数に対して処理するかどうか[true/false]を設定します(初期値:false) separator 【TAG】multi アクション時の文字列を分割する項目区切り文字をセットします instrVals 【TAG】スペースで区切られた複数の値すべてを含む条件を作成します instrType 【TAG】instrValsで複数の値を条件にする際の方法を指定します(初期値:and) range 【TAG】数値型カラムに対して、ハイフンで範囲指定をカンマに分解するかどうか[true/false]を設定します(初期値:false) 6.5.0.0 (2016/09/30) placeHolder 【TAG】value の?に設定する値を指定します。(queryType="JDBCPrepared"専用) quotCheck 【TAG】リクエスト情報の シングルクォート(') 存在チェックを実施するかどうか[true/false]を設定します (初期値:USE_SQL_INJECTION_CHECK[=true]) 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:and> ●使用例 <og:query command="NEW"> select PN,YOBI,NMEN,HINM from XX01 <og:where> <og:and value="PN = '{@PN}'" /> <og:and value="YOBI like '{@YOBI}%'" /> </og:where> order by PN </og:query> ・検索条件が入力された時(PN=AAA , YOBI=BBB) 作成されるSQL文⇒select PN,YOBI,NMEN,HINM from XX01 where PN = 'AAA' and YOBI like 'BBB%' order by PN ・検索条件が片方入力されなかった時(PNがNULLのとき, YOBI=BBB) 作成されるSQL文⇒select PN,YOBI,NMEN,HINM from XX01 where YOBI like 'BBB%' order by PN ・検索条件が入力されなかった時(PNがNULL, YOBIがNULL) WHERE句がなくなる。 作成されるSQL文⇒select PN,YOBI,NMEN,HINM from XX01 order by PN 注意:WhereTagを使わない場合に、検索条件が入力されなかった場合は、下記のようになります。 select PN,YOBI,NMEN,HINM from XX01 where PN = '' and YOBI like '%' order by PN -------------------------------------------------------------------------------------------------------------- <og:query command="NEW"> select PN,YOBI,NMEN,HINM from XX01 where PN="11111" <og:where startKey="and"> <og:and value="YOBI in ({@YOBI})" multi="true" /> <og:and value="HINM like '{@HINM}%'" /> </og:where> order by PN </og:query> ・YOBI を複数選択し、in で検索する時(YOBI=AA,BB,CC を選択) 作成されるSQL文⇒select PN,YOBI,NMEN,HINM from XX01 where PN = '11111' and YOBI in ( 'AA','BB','CC' ) and HINM like 'BBB%' order by PN -------------------------------------------------------------------------------------------------------------- placeHolderを利用する場合の利用例。 queryタグのqueryTypeはJDBCPrepared専用です。 なお、multi 使用時は、バインド変数は、一つのみ指定可能です。 <og:query command="NEW" queryType="JDBCPrepared"> SELECT * FROM XX01 <og:where> <og:and value="K01 = ?" placeHolder="{@VAL1}" /> <og:and value="K02 LIKE ?" placeHolder="{@VAL2}%" /> <og:and value="K03 IN (?)" multi="true" placeHolder="{@VAL3}" /> <og:and value="K04 = ? || ?" placeHolder="{@VAL4},{@VAL5}" /> </og:where> </og:query>
BR, BUFFER_MIDDLE, CR
bodyContent
id, pageContext
EVAL_BODY_BUFFERED, EVAL_BODY_TAG
EVAL_BODY_AGAIN
EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE
コンストラクタと説明 |
---|
SqlAndTag()
デフォルトコンストラクター
|
修飾子とタイプ | メソッドと説明 |
---|---|
int |
doAfterBody()
Taglibのタグ本体を処理する doAfterBody() を オーバーライドします。
|
int |
doEndTag()
Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
|
int |
doStartTag()
Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。
|
protected java.lang.String |
getRequestValue(java.lang.String key)
リクエスト情報の文字列を取得します。
|
protected java.lang.String |
getTagName()
タグの名称を、返します。
|
protected void |
release2()
タグリブオブジェクトをリリースします。
|
void |
setInstrType(java.lang.String tp)
【TAG】instrValsで複数の値を条件にする際の方法を指定します(初期値:and)。
|
void |
setInstrVals(java.lang.String val)
【TAG】特定の文字で区切られた複数の値すべてを含む条件を作成します。
|
void |
setMulti(java.lang.String flag)
【TAG】複数の引数に対して処理するかどうか[true/false]を設定します(初期値:false)。
|
void |
setPlaceHolder(java.lang.String val)
【TAG】プレースホルダーのvalueの条件作成を判定します(JDBCParepared用)。
|
void |
setQuotCheck(java.lang.String flag)
【TAG】リクエスト情報の シングルクォート(') 存在チェックを実施するかどうか[true/false]を設定します
(初期値:USE_SQL_INJECTION_CHECK[=true])。
|
void |
setRange(java.lang.String flag)
【TAG】数値型カラムに対して、ハイフンで範囲指定をカンマに分解するかどうか[true/false]を設定します(初期値:false)。
|
void |
setSeparator(java.lang.String sepa)
【TAG】multi アクション/instrVals 時の文字列を分割する項目区切り文字をセットします。
|
void |
setStartKey(java.lang.String skey)
【TAG】SQL条件句の最初の演算子を指定します(初期値:and)。
|
void |
setValue(java.lang.String val)
【TAG】条件の値を セットします。
|
void |
setXssCheck(java.lang.String flag)
【TAG】リクエスト情報の HTMLTag開始/終了文字(><) 存在チェックを実施するかどうか[true/false]を設定します
(初期値:USE_XSS_CHECK[=true])。
|
java.lang.String |
toString()
このオブジェクトの文字列表現を返します。
|
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, getRequestValues, getReservedParameter, getReservedValue, getResource, getSanitizedBodyString, getScope, getSessionAttribute, getSumRequestValue, 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, useTag, useXssCheck
doInitBody, getBodyContent, getPreviousOut, release, setBodyContent
findAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setPageContext, setParent, setValue
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getParent, setPageContext, setParent
public SqlAndTag()
public int doStartTag()
doStartTag
インタフェース内 Tag
doStartTag
クラス内 CommonTagSupport
public int doAfterBody()
doAfterBody
インタフェース内 IterationTag
doAfterBody
クラス内 CommonTagSupport
public int doEndTag()
doEndTag
インタフェース内 Tag
doEndTag
クラス内 CommonTagSupport
protected void release2()
release2
クラス内 CommonTagSupport
protected java.lang.String getRequestValue(java.lang.String key)
getRequestValue
クラス内 CommonTagSupport
key
- キーpublic void setStartKey(java.lang.String skey)
skey
- 条件句の最初の演算子public void setValue(java.lang.String val)
val
- 条件値public void setInstrVals(java.lang.String val)
val
- 複合条件作成のための設定値setInstrType(java.lang.String)
,
ColumnMarkerTag.setInstrVals( String )
public void setInstrType(java.lang.String tp)
tp
- 条件方法 [and/or/in/notin]setInstrVals( String )
public void setMulti(java.lang.String flag)
flag
- マルチ変換 [true:する/それ以外:しない]setSeparator( String )
public void setSeparator(java.lang.String sepa)
sepa
- 項目区切り文字(正規表現)setMulti( String )
public void setRange(java.lang.String flag)
flag
- 範囲変換 [true:する/それ以外:しない]public void setPlaceHolder(java.lang.String val)
val
- 値public void setQuotCheck(java.lang.String flag)
flag
- クォートチェック [true:する/それ以外:しない]SystemData.USE_SQL_INJECTION_CHECK
public void setXssCheck(java.lang.String flag)
flag
- XSSチェック [true:する/false:しない]SystemData.USE_XSS_CHECK
protected java.lang.String getTagName()
getTagName
クラス内 CommonTagSupport
CommonTagSupport.getDocumentLink()
public java.lang.String toString()
toString
クラス内 CommonTagSupport
Webアプリケーションフレームワーク openGionCopyright (c) 2009 The openGion Project.