public class ColumnCheckTag extends CommonTagSupport
●形式:<og:columnCheck command = "…" />
●形式:<og:columnCheck command = "…" >エラー時のみ処理 </og:columnCheck>
●body:なし/あり(EVAL_BODY_BUFFERED:BODYを評価し、{@XXXX} を解析します)
●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形式で複数指定します
caseKey 【TAG】このタグ自体を利用するかどうかの条件キーを指定します(初期値:null)
caseVal 【TAG】このタグ自体を利用するかどうかの条件値を指定します(初期値:null)
caseNN 【TAG】指定の値が、null/ゼロ文字列 でない場合(Not Null=NN)は、このタグは使用されます(初期値:true)
caseNull 【TAG】指定の値が、null/ゼロ文字列 の場合は、このタグは使用されます(初期値:true)
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 java.lang.String |
CMD_ENTRY
command 引数に渡す事の出来る コマンド エントリー "ENTRY"
|
static java.lang.String |
CMD_NEW
command 引数に渡す事の出来る コマンド 新規 "NEW"
|
static java.lang.String |
CMD_RENEW
command 引数に渡す事の出来る コマンド 再検索 "RENEW"
|
bodyContentid, pageContextEVAL_BODY_BUFFERED, EVAL_BODY_TAGEVAL_BODY_AGAINEVAL_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(java.lang.String nm)
【TAG】リクエスト変数の正規化を行うカラムをCSV形式で複数指定します。
|
void |
setCheckType(java.lang.String flag)
【TAG】 チェック対象のデータ[AUTO/NEW/ENTRY]を指定します(初期値:AUTO)。
|
void |
setColumns(java.lang.String clms)
【TAG】チェックすべきカラム列をカンマ区切り(CSV形式)で指定します。
|
void |
setCommand(java.lang.String cmd)
【TAG】コマンド[NEW/RENEW/ENTRY]をセットします(初期値:NEW)。
|
void |
setMatchKeys(java.lang.String keys)
【TAG】正規表現でのマッチングを行うカラム列をカンマ区切り(CSV形式)で指定します。
|
void |
setMatchVals(java.lang.String vals)
【TAG】正規表現でのマッチングを行うカラム列に対する値(正規表現)をカンマ区切り(CSV形式)で指定します。
|
void |
setMaxRowCount(java.lang.String count)
【TAG】チェックで選択された行数の最大値を設定します。
|
void |
setMinRowCount(java.lang.String count)
【TAG】チェックで選択された行数の最小値を設定します。
|
void |
setMustAnyCheck(java.lang.String clms)
【TAG】選択必須カラム(指定のカラムの内最低ひとつがNULLでない)を"AA|BB|CC,XX|YY|ZZ" 形式で指定します。
|
void |
setNullCheck(java.lang.String clms)
【TAG】NULL チェックすべきカラム列をカンマ区切(CSV形式)りで指定します。
|
void |
setRealTime(java.lang.String flg)
【TAG】(通常使いません)リアルタイムチェックを行う場合に有効にします。
|
void |
setTableId(java.lang.String id)
【TAG】(通常は使いません)結果のDBTableModelを、sessionに登録するときのキーを指定します
(初期値:HybsSystem#TBL_MDL_KEY[=h_tblmdl])。
|
void |
setUseColumnLabel(java.lang.String flg)
【TAG】カラムラベルを使用するかどうか[true/false]を指定します(初期値:false)。
|
void |
setUseStrict(java.lang.String flg)
【TAG】NEWの場合に、厳密にチェックするかどうか[true/false]を指定します(初期値:false)。
|
java.lang.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, getHostName, getLabel, getLabelInterface, getLanguage, getLASTAttri, getLongLabel, getMsglbl, getNVLAttri, getObject, getParameterNames, getParameterRows, getRequest, getRequestAttribute, getRequestCacheData, getRequestMethod, getRequestParameter, getRequestParameterValues, getRequestValue, getRequestValue, getRequestValues, getReservedParameter, getReservedValue, getResource, getSanitizedBodyString, getScope, getSessionAttribute, getTagName, getUser, getUserEditInfo, getUserInfo, isAjaxSubmitRequest, isDebug, isNoTransitionRequest, isNull, jspPrint, removeContextAttribute, removeObject, removeRequestAttribute, removeSessionAttribute, set, setAjaxSubmitRequest, 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, useXssCheckdoInitBody, getBodyContent, getPreviousOut, release, setBodyContentfindAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setPageContext, setParent, setValueclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetParent, setPageContext, setParentpublic static final java.lang.String CMD_RENEW
public ColumnCheckTag()
public int doStartTag()
doStartTag インタフェース内 TagdoStartTag クラス内 CommonTagSupport| 3.5.4.2 (2003/12/15) エラー時に、BODY部に記述された内容を出力する。 |
| 5.0.0.2 (2009/09/15) xss対応⇒チェックする |
| 5.7.8.0 (2014/07/04) caseKey,caseVal,caseNN,caseNull 属性を追加 |
public int doAfterBody()
doAfterBody インタフェース内 IterationTagdoAfterBody クラス内 CommonTagSupport| 3.5.4.2 (2003/12/15) エラー時に、BODY部に記述された内容を出力する。 |
public int doEndTag()
doEndTag インタフェース内 TagdoEndTag クラス内 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 |
| 5.6.8.3 (2013/09/27) checkTypeがAutoの場合のセットをここで行い、tableModelチェックをcheckTypeで行う。 |
| 5.7.8.0 (2014/07/04) caseKey,caseVal,caseNN,caseNull 属性を追加 |
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(java.lang.String clms)
clms - カラム列(CSV形式) columns="AAA,BBB,CCC,DDD"
分解方法は、通常のパラメータ取得後に、CSV分解します。
"*" を指定すると、command="NEW" のときの判定にすべてのリクエスト文字列を
チェック対象とします。通常は、必要分だけ指定しますが、動的カラムなどの
場合は、カラム名を予め指定できないため、"*" で指定できるようにします。
その場合、"h_" , "hX_" , maxRowCount , command , pageSize , pagePlus ,
GAMENID , BACK_JSPID , BACK_GAMENID の予約語は、対象から除きます。
※ 5.9.4.0 (2016/01/08)
columns="*" のときのカラムは、リクエスト変数から、上記の予約語も除きますが、
ResourceManager に存在しない(リソース未登録)カラムも除きます。| 3.5.6.2 (2004/07/05) 先に配列に分解してからリクエスト変数の値を取得 |
| 3.8.8.5 (2007/03/09) 通常のパラメータ取得後に、CSV分解に戻します。 |
| 5.4.3.4 (2012/01/12) command="NEW" のときの動的カラム対応( "*" ですべてのリクエスト) |
| 5.9.4.0 (2016/01/08) 6.4.0.2移植。columns="*" のときのカラムは、リソースに存在する分のみとする。 |
public void setNullCheck(java.lang.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(java.lang.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(java.lang.String cmd)
cmd - コマンド(public static final 宣言されている文字列)コマンドは,HTMLから(get/post)指定されますので,CMD_xxx で設定される フィールド定数値のいづれかを、指定できます。 何も設定されない、または、null の場合は、"NEW" が初期値にセットされます。
public void setCheckType(java.lang.String flag)
flag - チェック対象のデータ(AUTO,NEW,ENTRY)通常のリクエストデータは、キーそのものですが,エントリデータは表形式の データを一括で登録する為、(キー+"__" + 行番号)形式を、バラす必要があります。 ENTRY は、DBTableModelのリクエスト情報をチェックします。 これは、全データが対象になります。(columns/nullCheck 属性は無効) AUTO は、command が、上記 NEW か ENTRY かを判断して処理を振り分けます。 初期値は、AUTO です。
public void setMaxRowCount(java.lang.String count)
count - 制限をかけたい行数(この件数と同じ場合は正常 )最大選択件数を超えた場合は,エラーメッセージを返します。 例えば、1件のみを正常とする場合は、maxRowCount="1" とします。
public void setMinRowCount(java.lang.String count)
count - 制限をかけたい行数(この件数と同じ場合は正常 )最小選択件数を超えない場合は、エラーメッセージを返します。 例えば、1件のみを正常とする場合は、minRowCount="1" とします。
public void setTableId(java.lang.String id)
id - sessionに登録する時の ID 検索結果より、DBTableModelオブジェクトを作成します。これを、下流のviewタグ等に
渡す場合に、通常は、session を利用します。その場合の登録キーです。
query タグを同時に実行して、結果を求める場合、同一メモリに配置される為、
この tableId 属性を利用して、メモリ空間を分けます。
(初期値:HybsSystem#TBL_MDL_KEY[={@og.value org.opengion.hayabusa.common.HybsSystem#TBL_MDL_KEY}])。public void setMatchKeys(java.lang.String keys)
keys - カラム列(CSV形式)setMatchVals( String )matchKeys="AAA,BBB,CCC,DDD" matchKeys属性とmatchVals属性の個数は、同じでなければなりません。 先に配列に分解してからリクエスト変数の値を取得するようにします。 こうする事で、リクエストにカンマ区切りの値を設定できるようになります。
| 4.0.0.0 (2005/11/30) 新規作成 |
public void setMatchVals(java.lang.String vals)
vals - カラム列に対する値(正規表現)(CSV形式)setMatchKeys( String )matchVals="AAA,BBB,CCC,DDD" matchKeys属性とmatchVals属性の個数は、同じでなければなりません。 先に配列に分解してからリクエスト変数の値を取得するようにします。 こうする事で、リクエストにカンマ区切りの値を設定できるようになります。
| 4.0.0.0 (2005/11/30) 新規作成 |
public void setRealTime(java.lang.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(java.lang.String flg)
flg - 厳密にチェックするかどうか [true:厳密/false:甘い]データをチェックするに当たり、あいまい検索などで厳密にチェックすると エラーになるケースがあるため、command="NEW" のチェック時には、甘い目の チェックを行っています。DBColumn#valueCheck( String , false ) command="ENTRY" のチェックは、厳密なチェックです。 このフラグは、検索時でも、厳密なチェックを行いたい場合に、true をセットします。
| 5.2.2.0 (2010/11/01) 新規作成 |
public void setUseColumnLabel(java.lang.String flg)
flg - カラムラベルを使用するかどうか true:する/false:しない]カラムラベルはラベルローダーを利用せずにアプリケーション側で 追加したラベルをResourceManagerにキャッシュしている所から取り出す かどうかを指定します。 カラムラベルに存在しない場合は、通常のラベルから検索します。
| 5.4.3.4 (2012/01/12) 新規作成 |
public void setCheckNames(java.lang.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) コメント修正 |
| 5.6.9.4 (2013/10/31) 空白削除を行う |
public java.lang.String toString()
toString クラス内 CommonTagSupportWebアプリケーションフレームワーク openGionCopyright (c) 2009 The openGion Project.