public class ColumnCheckTag extends CommonTagSupport
●形式:<og:columnCheck command = "…" /> ●形式:<og:columnCheck command = "…" >エラー時のみ処理 </og:columnCheck> ●body:なし/あり ●Tag定義: <og:columnCheck command 【TAG】コマンド[NEW/RENEW/ENTRY]をセットします(初期値:NEW) columns 【TAG】チェックすべきカラム列をカンマ区切り(CSV形式)で指定します nullCheck 【TAG】NULL チェックすべきカラム列をカンマ区切(CSV形式)りで指定します mustAnyCheck 【TAG】選択必須カラム(指定のカラムの内最低ひとつがNULLでない)を"AA|BB|CC,XX|YY|ZZ" 形式で指定します checkType 【TAG】 チェック対象のデータ[AUTO/NEW/ENTRY]を指定します(初期値:AUTO) maxRowCount 【TAG】ENTRY時にチェックで選択された行数の最大値を設定します minRowCount 【TAG】ENTRY時にチェックで選択された行数の最小値を設定します tableId 【TAG】(通常は使いません) sessionに登録されている DBTableModel を取り出すキーを指定します matchKeys 【TAG】正規表現でのマッチングを行うカラム列をカンマ区切り(CSV形式)で指定します matchVals 【TAG】正規表現でのマッチングを行うカラム列に対する値(正規表現)をカンマ区切り(CSV形式)で指定します realTime 【TAG】(通常使いません)リアルタイムチェックを行う場合に有効にします useStrict 【TAG】NEWの場合に、厳密にチェックするかどうか[true/false]を指定します(初期値:false) useColumnLabel 【TAG】カラムラベルを使用するかどうか[true/false]を指定します(初期値:false) checkNames 【TAG】リクエスト変数の正規化を行うカラムをCSV形式で複数指定します debug 【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false) > ... Body ... </og:columnCheck> ●使用例 <og:columnCheck command = "{@command}" columns = "AAA,BBB,CCC" DB定義(DBColumnリソース)で定義した項目(桁数,タイプ等)でチェックします。 maxRowCount = "1" チェックで選ばれた 最大選択件数(設定値を含む)を指定。 minRowCount = "1" チェックで選ばれた 最小選択件数(設定値を含む)を指定。 nullCheck = "AAA,CCC" NULLチェックを実行します。 /> [エラー時に、BODY部に記述された内容を出力する。正常時には、このBODY部の記述は出力されません。] <og:columnCheck command = "{@command}" columns = "AAA,BBB,CCC" DB定義(DBColumnリソース)で定義した項目(桁数,タイプ等)でチェックします。 nullCheck = "AAA,CCC" NULLチェックを実行します。 > <form method="POST" action="forward.jsp" target="RESULT"> <og:input type="button" onClick="history.back()" msg="MSG0049" accesskey="R" td="false" /> </form> </og:columnCheck> mustAnyCheck 属性に、選択必須カラムを指定します。 例:mustAnyCheck="AA|BB|CC" AA,BB,CC のカラムで選択必須(すべてがnullならエラー) 例:mustAnyCheck="AA|BB|CC,XX|YY|ZZ" AA,BB,CC のセットと、XX,YY,ZZのセットでそれぞれ選択必須。 例:mustAnyCheck="AA|XX,AA|YY,AA|ZZ" AA に値があればすべて成立。そうでない場合は、XX と YY と ZZ がすべて必須。 例:mustAnyCheck="AA|BB,BB|CC,AA|CC" AA,BB,CC の内、どれか2つが必須。AAが成立すればBBかCCが必須。同様に、 BBが成立すれば、AAかCCが必須。 例:query.jsp <og:column name="AA" mustAny="true" /> <og:column name="BB" mustAny="true" /> <og:column name="XX" mustAny="XYZ" /> <og:column name="YY" mustAny="XYZ" /> result.jsp <og:columnCheck mustAnyCheck="AA|BB,XX|YY" /> custom/custom.css .XYZ { background-color: Green; } 例:動的カラムで、entry.jsp でのチェックを行う場合。 entry.jsp <og:columnCheck command="NEW" columns="*" useColumnLabel="true" /> useColumnLabel で、動的に作成されたカラム(SAVE=TRUEでキャッシュ済み)を使って チェックします。command="NEW" なので、対象カラムを指定するのに、"*" ですべてを選択します。
修飾子とタイプ | フィールドと説明 |
---|---|
static String |
CMD_ENTRY
command 引数に渡す事の出来る コマンド エントリー "ENTRY"
|
static String |
CMD_NEW
command 引数に渡す事の出来る コマンド 新規 "NEW"
|
static String |
CMD_RENEW
command 引数に渡す事の出来る コマンド 再検索 "RENEW"
|
bodyContent
id, pageContext
EVAL_BODY_BUFFERED, EVAL_BODY_TAG
EVAL_BODY_AGAIN
EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE
コンストラクタと説明 |
---|
ColumnCheckTag() |
修飾子とタイプ | メソッドと説明 |
---|---|
int |
doAfterBody()
Taglibのタグ本体を処理する doAfterBody() を オーバーライドします。
|
int |
doEndTag()
Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
|
int |
doStartTag()
Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。
|
protected void |
release2()
タグリブオブジェクトをリリースします。
|
void |
setCheckNames(String nm)
【TAG】リクエスト変数の正規化を行うカラムをCSV形式で複数指定します。
|
void |
setCheckType(String flag)
【TAG】 チェック対象のデータ[AUTO/NEW/ENTRY]を指定します(初期値:AUTO)。
|
void |
setColumns(String clms)
【TAG】チェックすべきカラム列をカンマ区切り(CSV形式)で指定します。
|
void |
setCommand(String cmd)
【TAG】コマンド[NEW/RENEW/ENTRY]をセットします(初期値:NEW)。
|
void |
setMatchKeys(String keys)
【TAG】正規表現でのマッチングを行うカラム列をカンマ区切り(CSV形式)で指定します。
|
void |
setMatchVals(String vals)
【TAG】正規表現でのマッチングを行うカラム列に対する値(正規表現)をカンマ区切り(CSV形式)で指定します。
|
void |
setMaxRowCount(String count)
【TAG】
|
void |
setMinRowCount(String count)
【TAG】
|
void |
setMustAnyCheck(String clms)
【TAG】選択必須カラム(指定のカラムの内最低ひとつがNULLでない)を"AA|BB|CC,XX|YY|ZZ" 形式で指定します。
|
void |
setNullCheck(String clms)
【TAG】NULL チェックすべきカラム列をカンマ区切(CSV形式)りで指定します。
|
void |
setRealTime(String flg)
【TAG】(通常使いません)リアルタイムチェックを行う場合に有効にします。
|
void |
setTableId(String id)
【TAG】(通常は使いません) sessionに登録されている DBTableModel を取り出すキーを指定します。
|
void |
setUseColumnLabel(String flg)
【TAG】カラムラベルを使用するかどうか[true/false]を指定します(初期値:false)。
|
void |
setUseStrict(String flg)
【TAG】NEWの場合に、厳密にチェックするかどうか[true/false]を指定します(初期値:false)。
|
String |
toString()
このオブジェクトの文字列表現を返します。
|
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, 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
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 int doStartTag()
doStartTag
インタフェース内 Tag
doStartTag
クラス内 CommonTagSupport
3.5.4.2 (2003/12/15) エラー時に、BODY部に記述された内容を出力する。 |
5.0.0.2 (2009/09/15) xss対応->チェックする |
public int doAfterBody()
doAfterBody
インタフェース内 IterationTag
doAfterBody
クラス内 CommonTagSupport
3.5.4.2 (2003/12/15) エラー時に、BODY部に記述された内容を出力する。 |
public int doEndTag()
doEndTag
インタフェース内 Tag
doEndTag
クラス内 CommonTagSupport
3.1.1.2 (2003/04/04) Tomcat4.1 対応。release2() を doEndTag()で呼ぶ。 |
3.4.0.3 (2003/09/10) command="NEW" でエラー発生時には、DBTableModel をクリアする。 |
3.5.4.2 (2003/12/15) HTMLTableViewForm クラス名変更(⇒ ViewForm_HTMLTable) |
3.5.4.2 (2003/12/15) エラー時に、BODY部に記述された内容を出力する。 |
3.5.4.3 (2004/01/05) tableId 属性を追加。 |
3.5.4.4 (2004/01/16) エラー結果を表示するテーブル形式のフォーム修正 |
3.5.5.2 (2004/04/02) TaglibUtil.makeHTMLErrorTable メソッドを利用 |
4.1.2.1 (2008/03/13) table 属性を追加。 |
4.3.3.0 (2008/10/01) viewSimple属性追加 |
4.3.7.0 (2009/06/01) viewSimple属性名称変更 -> isRealTime |
protected void release2()
release2
クラス内 CommonTagSupport
2.0.0.4 (2002/09/27) カスタムタグの release() メソッドを、追加 |
3.1.1.2 (2003/04/04) Tomcat4.1 対応。release2() を doEndTag()で呼ぶ。 |
3.5.4.2 (2003/12/15) エラー時に、BODY部に記述された内容を出力する。 |
3.5.4.3 (2004/01/05) tableId 属性を追加。 |
3.8.0.9 (2005/10/17) mustAnyCheck 属性を追加。 |
4.1.2.1 (2008/03/13) table 属性を追加。 |
4.3.3.0 (2008/10/01) viewSimple属性追加 |
4.3.7.0 (2009/06/01) viewSimple属性名称変更 -> isRealTime |
5.2.2.0 (2010/11/01) NEWの場合に、厳密にチェックするフラグを追加 |
5.4.3.4 (2012/01/12) isColumnLabelを追加 |
public void setColumns(String clms)
clms
- カラム列(CSV形式)columns="AAA,BBB,CCC,DDD"先に配列に分解してからリクエスト変数の値を取得するようにします。 こうする事で、リクエストにカンマ区切りの値を設定できるようになります。分解方法は、通常のパラメータ取得後に、CSV分解します。 "*" を指定すると、command="NEW" のときの判定にすべてのリクエスト文字列を チェック対象とします。通常は、必要分だけ指定しますが、動的カラムなどの 場合は、カラム名を予め指定できないため、"*" で指定できるようにします。 その場合、"h_" , "hX_" , maxRowCount , command , pageSize , pagePlus , GAMENID , BACK_JSPID , BACK_GAMENID の予約語は、対象から除きます。
3.5.6.2 (2004/07/05) 先に配列に分解してからリクエスト変数の値を取得 |
3.8.8.5 (2007/03/09) 通常のパラメータ取得後に、CSV分解に戻します。 |
5.4.3.4 (2012/01/12) command="NEW" のときの動的カラム対応( "*" ですべてのリクエスト) |
public void setNullCheck(String clms)
clms
- カラム列(CSV形式)(must 属性のセットにより、自動処理されます) nullCheck="AAA,BBB,CCC,DDD"先に配列に分解してからリクエスト変数の値を取得するようにします。 こうする事で、リクエストにカンマ区切りの値を設定できるようになります。分解方法は、通常のパラメータ取得後に、CSV分解します。
3.5.6.2 (2004/07/05) 先に配列に分解してからリクエスト変数の値を取得 |
3.8.8.5 (2007/03/09) 通常のパラメータ取得後に、CSV分解に戻します。 |
public void setMustAnyCheck(String clms)
clms
- 選択必須カラム(mustAny 属性のセットにより、自動処理されます) 複数のカラム属性の値のうち、どれかが null でない場合は正常とし、 すべてが null の場合を警告します。 例:mustAnyCheck="AA|BB|CC" AA,BB,CC のカラムで選択必須(すべてがnullならエラー) 例:mustAnyCheck="AA|BB|CC,XX|YY|ZZ" AA,BB,CC のセットと、XX,YY,ZZのセットでそれぞれ選択必須。 例:mustAnyCheck="AA|XX,AA|YY,AA|ZZ" AA に値があればすべて成立。そうでない場合は、XX と YY と ZZ がすべて必須。 例:mustAnyCheck="AA|BB,BB|CC,AA|CC" AA,BB,CC の内、どれか2つが必須。AAが成立すればBBかCCが必須。同様に、 BBが成立すれば、AAかCCが必須。 選択必須は、must と同様に、色づけを行う(query.jsp)画面では、mustAny 属性を セットします。チェックを行う(result.jsp)画面では、columnCheck タグの mustAnyCheck 属性に、選択必須カラムを指定します。(上記参照) column タグ等の mustAny 属性に、mustAny="true" とセットすると、生成される HTMLは、class="mustAny" が出力されます。エンジン標準では、default.css に .mustAny が定義されています。( background-color: #CCFFFF; ) なお、mustAny 属性に、true 以外の値をセットした場合(mustAny="XYZ")は、 生成されるHTMLに、class="XYZ" が出力されます。これは、複数のグループ間で 色を変えて、選択必須を指定する場合に使用します。色は、custom/custom.css で指定します。 分解方法は、通常のパラメータ取得後に、CSV分解します。
3.8.0.9 (2005/10/17) 新規追加 |
3.8.8.5 (2007/03/09) 通常のパラメータ取得後に、CSV分解に戻します。 |
public void setCommand(String cmd)
cmd
- コマンド(public static final 宣言されている文字列)コマンドは,HTMLから(get/post)指定されますので,CMD_xxx で設定される フィールド定数値のいづれかを、指定できます。 何も設定されない、または、null の場合は、"NEW" が初期値にセットされます。
public void setCheckType(String flag)
flag
- チェック対象のデータ(AUTO,NEW,ENTRY)通常のリクエストデータは、キーそのものですが,エントリデータは表形式の データを一括で登録する為、(キー+"__" + 行番号)形式を、バラす必要があります。 ENTRY は、DBTableModelのリクエスト情報をチェックします。 これは、全データが対象になります。(columns/nullCheck 属性は無効) AUTO は、command が、上記 NEW か ENTRY かを判断して処理を振り分けます。 初期値は、AUTO です。
public void setMaxRowCount(String count)
count
- 制限をかけたい行数(この件数と同じ場合は正常 )最大選択件数を超えた場合は,エラーメッセージを返します。 例えば、1件のみを正常とする場合は、maxRowCount="1" とします。
public void setMinRowCount(String count)
count
- 制限をかけたい行数(この件数と同じ場合は正常 )最小選択件数を超えない場合は、エラーメッセージを返します。 例えば、1件のみを正常とする場合は、minRowCount="1" とします。
public void setTableId(String id)
id
- sessionに登録する時の ID検索結果のDBTableModelを別メモリーに分ける場合は、このキーを指定します。 その場合、メモリ上から削除する方法がないため(session タイムアウトで破棄)大量の データを分けた場合は、ご注意ください。 初期値は、HybsSystem.TBL_MDL_KEY です。
3.5.4.3 (2004/01/05) 新規追加 |
public void setMatchKeys(String keys)
keys
- カラム列(CSV形式)setMatchVals( String )
matchKeys="AAA,BBB,CCC,DDD" matchKeys属性とmatchVals属性の個数は、同じでなければなりません。 先に配列に分解してからリクエスト変数の値を取得するようにします。 こうする事で、リクエストにカンマ区切りの値を設定できるようになります。
4.0.0 (2005/11/30) 新規作成 |
public void setMatchVals(String vals)
vals
- カラム列に対する値(正規表現)(CSV形式)setMatchKeys( String )
matchVals="AAA,BBB,CCC,DDD" matchKeys属性とmatchVals属性の個数は、同じでなければなりません。 先に配列に分解してからリクエスト変数の値を取得するようにします。 こうする事で、リクエストにカンマ区切りの値を設定できるようになります。
4.0.0 (2005/11/30) 新規作成 |
public void setRealTime(String flg)
flg
- 簡易表示を行うかどうかリアルタイムチェックを行う場合に有効にする属性です。 trueが指定された場合、通常のチェックと比較し、以下の差異があります。 ①エラー結果を簡易フォーマットで出力します。 (ViewFormType="HTMLSimpleErrorList"で表示されます。) この簡易フォーマットで出力した場合は、ラベル(短)の定義で出力され、 カラム名やデータ等は出力されません。 ②must,mustAny属性のチェックを行いません。 必須及び選択必須は、視覚的に判別できるため、リアルタイムチェックの 対象外とします。
4.3.3.0 (2008/10/01) 新規作成 |
4.3.7.0 (2009/06/01) viewSimple属性名称変更 -> isRealTime |
public void setUseStrict(String flg)
flg
- 厳密にチェックするかどうか [true:厳密/false:甘い]データをチェックするに当たり、あいまい検索などで厳密にチェックすると エラーになるケースがあるため、command="NEW" のチェック時には、甘い目の チェックを行っています。DBColumn#valueCheck( String , false ) command="ENTRY" のチェックは、厳密なチェックです。 このフラグは、検索時でも、厳密なチェックを行いたい場合に、true をセットします。
5.2.2.0 (2010/11/01) 新規作成 |
public void setUseColumnLabel(String flg)
flg
- カラムラベルを使用するかどうか true:する/false:しない]カラムラベルはラベルローダーを利用せずにアプリケーション側で 追加したラベルをResourceManagerにキャッシュしている所から取り出す かどうかを指定します。 カラムラベルに存在しない場合は、通常のラベルから検索します。
5.4.3.4 (2012/01/12) 新規作成 |
public void setCheckNames(String nm)
nm
- リクエスト変数の正規化を行うカラムカラムチェックで正規化が行われていないプラグインに対して強制的に正規化を行います。 この属性を利用したチェックを行った場合は、queryタグでPL/SQLを動作させる場合にも 同名属性でカラムの指定を行う必要があります。 (queryタグでcheckNamesを利用しない場合はこの属性はnullにしてください) この属性はチェックタイプがNEWの場合のみ有効です。 リアルタイムチェックでこの機能を利用したい場合は、columnTag等のoptionAttributes 属性にrtOption='checkNames=VIEW_DATE'のように記述してください。
5.4.3.8 (2012/01/24) 新規追加 |
5.4.4.0 (2012/02/01) コメント修正 |
public String toString()
toString
クラス内 CommonTagSupport
Webアプリケーションフレームワーク openGionCopyright (c) 2009 The openGion Project.