org.opengion.hayabusa.taglib
クラス ColumnCheckTag
java.lang.Object
javax.servlet.jsp.tagext.TagSupport
javax.servlet.jsp.tagext.BodyTagSupport
org.opengion.hayabusa.taglib.CommonTagSupport
org.opengion.hayabusa.taglib.ColumnCheckTag
- すべての実装されたインタフェース:
- Serializable, BodyTag, IterationTag, JspTag, Tag, TryCatchFinally
public class ColumnCheckTag
- extends CommonTagSupport
登録データの物理チェック(整合性チェック、nullチェック)を行うタグです。
コマンドに対応したチェック方式で、指定のカラムをチェックします。
command="NEW" の場合は、columns 引数にCSV形式で指定したカラム名より
リクエスト情報を取得して、値をチェックします。
引数チェックでは、"%" や "_" などのあいまい検索時に指定する記号を
含むとエラーになるカラムはチェック対象からはずす必要がある為、
チェックすべきカラムを指定する必要があります。
command="ENTRY" の場合は、columns 引数に無関係に、全てのリクエストされたカラム
の値をチェックします。これは、先の検索時の場合と異なり、ENTRYでは
データベースに値を設定する為、無条件にチェックする必要があります。
nullCheck は、command に無関係に指定のカラムが null (ゼロ文字列)かどうかを
判定します。
maxRowCount は、一覧検索時のチェックされた件数が、指定の値を超えた場合に
エラーになります。minRowCount は、同様に、最小選択件数(設定値を含む)の指定です。
このタグは、エラー時には、それ以降のJSP画面を評価しません。BODY 部に記述された
値は、エラー時のみ表示され、正常時には、なにも表示されません。これは、エラー時の
メッセージや、ユーザーにエラー時のアクションを行ってもらう場合の処理(例えば、
画面を戻る為のボタンなど)を表示させます。
command="MODIFY" , "DELETE" 時には、強制的に、minRowCount="1" で処理します。
- 関連項目:
- 直列化された形式
- 機能階層
- 画面登録
- 形式サンプル:
●形式:<og:columnCheck command = "…" />
●形式:<og:columnCheck command = "…" >エラー時のみ処理 </og:columnCheck>
●body:なし/あり
●使用例
<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; }
- バージョン
- 4.0
- 作成者
- Kazuhiko Hasegawa
- 導入されたバージョン:
- JDK5.0,
クラス org.opengion.hayabusa.taglib.CommonTagSupport から継承されたメソッド |
add, add, addEventColumnSQL, 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, getResource, getScope, getSessionAttribute, getTagName, getUser, getUserInfo, isAjaxSubmitSession, isDebug, isNoTransitionSession, isNull, jspPrint, removeContextAttribute, removeObject, removeRequestAttribute, removeSessionAttribute, set, setAjaxSubmitSession, setContextAttribute, setCookie, setDebug, setLanguage, setLbl, setMsglbl, setNoTransitionSession, setObject, setParameterRows, setRequestAttribute, setRequestCacheData, setScope, setSessionAttribute, setUserInfo, setUseValue, startQueryTransaction, sys, sysBool, sysInt, useQuotCheck, useXssCheck |
CMD_NEW
public static final String CMD_NEW
- command 引数に渡す事の出来る コマンド 新規 "NEW"
- 関連項目:
- 定数フィールド値
CMD_RENEW
public static final String CMD_RENEW
- command 引数に渡す事の出来る コマンド 再検索 "RENEW"
- 関連項目:
- 定数フィールド値
CMD_ENTRY
public static final String CMD_ENTRY
- command 引数に渡す事の出来る コマンド エントリー "ENTRY"
- 関連項目:
- 定数フィールド値
ColumnCheckTag
public ColumnCheckTag()
doStartTag
public int doStartTag()
- Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。
- 定義:
- インタフェース
Tag
内の doStartTag
- オーバーライド:
- クラス
CommonTagSupport
内の doStartTag
- 戻り値:
- int
- 変更履歴:
3.5.4.2 (2003/12/15) エラー時に、BODY部に記述された内容を出力する。 |
5.0.0.2 (2009/09/15) xss対応->チェックする |
doAfterBody
public int doAfterBody()
- Taglibのタグ本体を処理する doAfterBody() を オーバーライドします。
- 定義:
- インタフェース
IterationTag
内の doAfterBody
- オーバーライド:
- クラス
CommonTagSupport
内の doAfterBody
- 戻り値:
- int
- 変更履歴:
3.5.4.2 (2003/12/15) エラー時に、BODY部に記述された内容を出力する。 |
doEndTag
public int doEndTag()
- Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
- 定義:
- インタフェース
Tag
内の doEndTag
- オーバーライド:
- クラス
CommonTagSupport
内の doEndTag
- 戻り値:
- int
- 変更履歴:
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 |
release2
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 |
setColumns
public void setColumns(String clms)
- 【TAG】チェックすべきカラム列をカンマ区切りで指定します。
- パラメータ:
clms
- String- TagLib:
columns="AAA,BBB,CCC,DDD"
先に配列に分解してからリクエスト変数の値を取得するようにします。
こうする事で、リクエストにカンマ区切りの値を設定できるようになります。
分解方法は、通常のパラメータ取得後に、CSV分解します。 |
- 変更履歴:
3.5.6.2 (2004/07/05) 先に配列に分解してからリクエスト変数の値を取得 |
3.8.8.5 (2007/03/09) 通常のパラメータ取得後に、CSV分解に戻します。 |
setNullCheck
public void setNullCheck(String clms)
- 【TAG】NULL チェックすべきカラム列をカンマ区切りで指定します。
- パラメータ:
clms
- String- TagLib:
(must 属性のセットにより、自動処理されます)
nullCheck="AAA,BBB,CCC,DDD"
先に配列に分解してからリクエスト変数の値を取得するようにします。
こうする事で、リクエストにカンマ区切りの値を設定できるようになります。
分解方法は、通常のパラメータ取得後に、CSV分解します。 |
- 変更履歴:
3.5.6.2 (2004/07/05) 先に配列に分解してからリクエスト変数の値を取得 |
3.8.8.5 (2007/03/09) 通常のパラメータ取得後に、CSV分解に戻します。 |
setMustAnyCheck
public void setMustAnyCheck(String clms)
- 【TAG】選択必須カラム(指定のカラムの内最低ひとつがNULLでない)を"AA|BB|CC,XX|YY|ZZ" 形式で指定します。
- パラメータ:
clms
- String- TagLib:
(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分解に戻します。 |
setCommand
public void setCommand(String cmd)
- 【TAG】コマンド(NEW,RENEW,ENTRY)をセットします(初期値:NEW)。
- パラメータ:
cmd
- コマンド(public static final 宣言されている文字列)- 関連項目:
- コマンド定数
- TagLib:
コマンドは,HTMLから(get/post)指定されますので,CMD_xxx で設定される
フィールド定数値のいづれかを、指定できます。
何も設定されない、または、null の場合は、"NEW" が初期値にセットされます。 |
setCheckType
public void setCheckType(String flag)
- 【TAG】 チェック対象のデータ(AUTO/NEW/ENTRY)を指定します(初期値:AUTO)。
- パラメータ:
flag
- チェック対象のデータ(AUTO/NEW/ENTRY)- TagLib:
通常のリクエストデータは、キーそのものですが,エントリデータは表形式の
データを一括で登録する為、(キー+"__" + 行番号)形式を、バラす必要があります。
ENTRY は、DBTableModelのリクエスト情報をチェックします。
これは、全データが対象になります。(columns/nullCheck 属性は無効)
AUTO は、command が、上記 NEW か ENTRY かを判断して処理を振り分けます。
初期値は、AUTO です。 |
setMaxRowCount
public void setMaxRowCount(String count)
- 【TAG】
ENTRY時にチェックで選択された行数の最大値を設定します。
- パラメータ:
count
- 制限をかけたい行数(この件数と同じ場合は正常 )- TagLib:
最大選択件数を超えた場合は,エラーメッセージを返します。
例えば、1件のみを正常とする場合は、maxRowCount="1" とします。 |
setMinRowCount
public void setMinRowCount(String count)
- 【TAG】
ENTRY時にチェックで選択された行数の最小値を設定します。
- パラメータ:
count
- 制限をかけたい行数(この件数と同じ場合は正常 )- TagLib:
最小選択件数を超えない場合は、エラーメッセージを返します。
例えば、1件のみを正常とする場合は、minRowCount="1" とします。 |
setTableId
public void setTableId(String id)
- 【TAG】(通常は使いません) sessionに登録されている DBTableModel を取り出すキーを指定します。
- パラメータ:
id
- sessionに登録する時の ID- TagLib:
検索結果のDBTableModelを別メモリーに分ける場合は、このキーを指定します。
その場合、メモリ上から削除する方法がないため(session タイムアウトで破棄)大量の
データを分けた場合は、ご注意ください。
初期値は、HybsSystem.TBL_MDL_KEY です。 |
- 変更履歴:
3.5.4.3 (2004/01/05) 新規追加 |
setMatchKeys
public void setMatchKeys(String keys)
- 【TAG】正規表現でのマッチングを行うカラム列をカンマ区切りで指定します。
- パラメータ:
keys
- String- 関連項目:
setMatchVals( String )
- TagLib:
matchKeys="AAA,BBB,CCC,DDD"
matchKeys属性とmatchVals属性の個数は、同じでなければなりません。
先に配列に分解してからリクエスト変数の値を取得するようにします。
こうする事で、リクエストにカンマ区切りの値を設定できるようになります。 |
- 変更履歴:
setMatchVals
public void setMatchVals(String vals)
- 【TAG】正規表現でのマッチングを行うカラム列に対する値(正規表現)をカンマ区切りで指定します。
- パラメータ:
vals
- String- 関連項目:
setMatchKeys( String )
- TagLib:
matchVals="AAA,BBB,CCC,DDD"
matchKeys属性とmatchVals属性の個数は、同じでなければなりません。
先に配列に分解してからリクエスト変数の値を取得するようにします。
こうする事で、リクエストにカンマ区切りの値を設定できるようになります。 |
- 変更履歴:
setRealTime
public void setRealTime(String flg)
- 【TAG】(通常使いません)リアルタイムチェックを行う場合に有効にします。
- パラメータ:
flg
- 簡易表示を行うかどうか- TagLib:
リアルタイムチェックを行う場合に有効にする属性です。
trueが指定された場合、通常のチェックと比較し、以下の差異があります。
①エラー結果を簡易フォーマットで出力します。
(ViewFormType="HTMLSimpleErrorList"で表示されます。)
この簡易フォーマットで出力した場合は、ラベル(短)の定義で出力され、
カラム名やデータ等は出力されません。
②must,mustAny属性のチェックを行いません。
必須及び選択必須は、視覚的に判別できるため、リアルタイムチェックの
対象外とします。 |
- 変更履歴:
4.3.3.0 (2008/10/01) 新規作成 |
4.3.7.0 (2009/06/01) viewSimple属性名称変更 -> isRealTime |
toString
public String toString()
- このオブジェクトの文字列表現を返します。
基本的にデバッグ目的に使用します。
- オーバーライド:
- クラス
CommonTagSupport
内の toString
- 戻り値:
- このクラスの文字列表現
Webアプリケーションフレームワーク openGion
Copyright (c) 2009 The openGion Project.