|
|
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectjavax.servlet.jsp.tagext.TagSupport
javax.servlet.jsp.tagext.BodyTagSupport
org.opengion.hayabusa.taglib.CommonTagSupport
org.opengion.hayabusa.taglib.ColumnCheckTag
public class ColumnCheckTag
登録データの物理チェック(整合性チェック、nullチェック)を行うタグです。 コマンドに対応したチェック方式で、指定のカラムをチェックします。 command="NEW" の場合は、columns 引数にCSV形式で指定したカラム名より リクエスト情報を取得して、値をチェックします。 引数チェックでは、"%" や "_" などのあいまい検索時に指定する記号を 含むとエラーになるカラムはチェック対象からはずす必要がある為、 チェックすべきカラムを指定する必要があります。 command="ENTRY" の場合は、columns 引数に無関係に、全てのリクエストされたカラム の値をチェックします。これは、先の検索時の場合と異なり、ENTRYでは データベースに値を設定する為、無条件にチェックする必要があります。 nullCheck は、command に無関係に指定のカラムが null (ゼロ文字列)かどうかを 判定します。 maxRowCount は、一覧検索時のチェックされた件数が、指定の値を超えた場合に エラーになります。minRowCount は、同様に、最小選択件数(設定値を含む)の指定です。 このタグは、エラー時には、それ以降のJSP画面を評価しません。BODY 部に記述された 値は、エラー時のみ表示され、正常時には、なにも表示されません。これは、エラー時の メッセージや、ユーザーにエラー時のアクションを行ってもらう場合の処理(例えば、 画面を戻る為のボタンなど)を表示させます。 useColumnLabel を true にセットすると、エラー時のカラム名(ラベル)を、カラムオブジェクトから 取得するようになります。動的カラム実行時や、DBTableModelに対して、ColumnEditor等で ラベルを書き換えた場合に、有効です。false の場合は、基本的にはラベルリソースからの 取得になりますが、ケースによっては、カラムオブジェクトから取得している場合もあります。 この属性は、互換性を重視し、初期値が、false になっています。 command="MODIFY" , "DELETE" 時には、強制的に、minRowCount="1" で処理します。
●形式:<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 java.lang.String |
CMD_ENTRY
command 引数に渡す事の出来る コマンド エントリー "ENTRY" |
static java.lang.String |
CMD_NEW
command 引数に渡す事の出来る コマンド 新規 "NEW" |
static java.lang.String |
CMD_RENEW
command 引数に渡す事の出来る コマンド 再検索 "RENEW" |
クラス 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 |
コンストラクタの概要 | |
---|---|
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】(通常は使いません) sessionに登録されている DBTableModel を取り出すキーを指定します。 |
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()
このオブジェクトの文字列表現を返します。 |
クラス 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 |
フィールドの詳細 |
---|
public static final java.lang.String CMD_NEW
public static final java.lang.String CMD_RENEW
public static final java.lang.String CMD_ENTRY
コンストラクタの詳細 |
---|
public ColumnCheckTag()
メソッドの詳細 |
---|
public int doStartTag()
javax.servlet.jsp.tagext.Tag
内の doStartTag
CommonTagSupport
内の doStartTag
3.5.4.2 (2003/12/15) エラー時に、BODY部に記述された内容を出力する。 |
5.0.0.2 (2009/09/15) xss対応->チェックする |
public int doAfterBody()
javax.servlet.jsp.tagext.IterationTag
内の doAfterBody
CommonTagSupport
内の doAfterBody
3.5.4.2 (2003/12/15) エラー時に、BODY部に記述された内容を出力する。 |
public int doEndTag()
javax.servlet.jsp.tagext.Tag
内の doEndTag
CommonTagSupport
内の doEndTag
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()
CommonTagSupport
内の release2
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 の予約語は、対象から除きます。
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(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を別メモリーに分ける場合は、このキーを指定します。 その場合、メモリ上から削除する方法がないため(session タイムアウトで破棄)大量の データを分けた場合は、ご注意ください。 初期値は、HybsSystem.TBL_MDL_KEY です。
3.5.4.3 (2004/01/05) 新規追加 |
public void setMatchKeys(java.lang.String keys)
keys
- カラム列(CSV形式)setMatchVals( String )
matchKeys="AAA,BBB,CCC,DDD" matchKeys属性とmatchVals属性の個数は、同じでなければなりません。 先に配列に分解してからリクエスト変数の値を取得するようにします。 こうする事で、リクエストにカンマ区切りの値を設定できるようになります。
4.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 (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) コメント修正 |
public java.lang.String toString()
CommonTagSupport
内の toString
|
openGion 5.6.1.0 | ||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |