openGionopenGion
5.3.9.0

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
すべての実装されたインタフェース:
java.io.Serializable, javax.servlet.jsp.tagext.BodyTag, javax.servlet.jsp.tagext.IterationTag, javax.servlet.jsp.tagext.JspTag, javax.servlet.jsp.tagext.Tag, javax.servlet.jsp.tagext.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,

フィールドの概要
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 setCheckType(java.lang.String flag)
          【TAG】 チェック対象のデータ(AUTO/NEW/ENTRY)を指定します(初期値:AUTO)。
 void setColumns(java.lang.String clms)
          【TAG】チェックすべきカラム列をカンマ区切りで指定します。
 void setCommand(java.lang.String cmd)
          【TAG】コマンド(NEW,RENEW,ENTRY)をセットします(初期値:NEW)。
 void setMatchKeys(java.lang.String keys)
          【TAG】正規表現でのマッチングを行うカラム列をカンマ区切りで指定します。
 void setMatchVals(java.lang.String vals)
          【TAG】正規表現でのマッチングを行うカラム列に対する値(正規表現)をカンマ区切りで指定します。
 void setMaxRowCount(java.lang.String count)
          【TAG】ENTRY時にチェックで選択された行数の最大値を設定します。
 void setMinRowCount(java.lang.String count)
          【TAG】ENTRY時にチェックで選択された行数の最小値を設定します。
 void setMustAnyCheck(java.lang.String clms)
          【TAG】選択必須カラム(指定のカラムの内最低ひとつがNULLでない)を"AA|BB|CC,XX|YY|ZZ" 形式で指定します。
 void setNullCheck(java.lang.String clms)
          【TAG】NULL チェックすべきカラム列をカンマ区切りで指定します。
 void setRealTime(java.lang.String flg)
          【TAG】(通常使いません)リアルタイムチェックを行う場合に有効にします。
 void setTableId(java.lang.String id)
          【TAG】(通常は使いません) sessionに登録されている DBTableModel を取り出すキーを指定します。
 void setUseStrict(java.lang.String flg)
          【TAG】NEWの場合に、厳密にチェックするかどうかを指定します(初期値:false)
 java.lang.String toString()
          このオブジェクトの文字列表現を返します。
 
クラス org.opengion.hayabusa.taglib.CommonTagSupport から継承されたメソッド
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, 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
 
クラス 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
 

フィールドの詳細

CMD_NEW

public static final java.lang.String CMD_NEW
command 引数に渡す事の出来る コマンド 新規 "NEW"

関連項目:
定数フィールド値

CMD_RENEW

public static final java.lang.String CMD_RENEW
command 引数に渡す事の出来る コマンド 再検索 "RENEW"

関連項目:
定数フィールド値

CMD_ENTRY

public static final java.lang.String CMD_ENTRY
command 引数に渡す事の出来る コマンド エントリー "ENTRY"

関連項目:
定数フィールド値
コンストラクタの詳細

ColumnCheckTag

public ColumnCheckTag()
メソッドの詳細

doStartTag

public int doStartTag()
Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。

定義:
インタフェース javax.servlet.jsp.tagext.Tag 内の doStartTag
オーバーライド:
クラス CommonTagSupport 内の doStartTag
戻り値:
int 後続処理の指示( EVAL_BODY_BUFFERED )
変更履歴:
3.5.4.2 (2003/12/15) エラー時に、BODY部に記述された内容を出力する。
5.0.0.2 (2009/09/15) xss対応->チェックする

doAfterBody

public int doAfterBody()
Taglibのタグ本体を処理する doAfterBody() を オーバーライドします。

定義:
インタフェース javax.servlet.jsp.tagext.IterationTag 内の doAfterBody
オーバーライド:
クラス CommonTagSupport 内の doAfterBody
戻り値:
int 後続処理の指示(SKIP_BODY)
変更履歴:
3.5.4.2 (2003/12/15) エラー時に、BODY部に記述された内容を出力する。

doEndTag

public int doEndTag()
Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。

定義:
インタフェース javax.servlet.jsp.tagext.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
5.2.2.0 (2010/11/01) NEWの場合に、厳密にチェックするフラグを追加

setColumns

public void setColumns(java.lang.String clms)
【TAG】チェックすべきカラム列をカンマ区切りで指定します。

パラメータ:
clms - String
説明:
 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(java.lang.String clms)
【TAG】NULL チェックすべきカラム列をカンマ区切りで指定します。

パラメータ:
clms - String
説明:
 (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(java.lang.String clms)
【TAG】選択必須カラム(指定のカラムの内最低ひとつがNULLでない)を"AA|BB|CC,XX|YY|ZZ" 形式で指定します。

パラメータ:
clms - String
説明:
 (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(java.lang.String cmd)
【TAG】コマンド(NEW,RENEW,ENTRY)をセットします(初期値:NEW)。

パラメータ:
cmd - コマンド(public static final 宣言されている文字列)
関連項目:
コマンド定数
説明:
 コマンドは,HTMLから(get/post)指定されますので,CMD_xxx で設定される
 フィールド定数値のいづれかを、指定できます。
 何も設定されない、または、null の場合は、"NEW" が初期値にセットされます。

setCheckType

public void setCheckType(java.lang.String flag)
【TAG】 チェック対象のデータ(AUTO/NEW/ENTRY)を指定します(初期値:AUTO)。

パラメータ:
flag - チェック対象のデータ(AUTO/NEW/ENTRY)
説明:
 通常のリクエストデータは、キーそのものですが,エントリデータは表形式の
 データを一括で登録する為、(キー+"__" + 行番号)形式を、バラす必要があります。

 ENTRY は、DBTableModelのリクエスト情報をチェックします。
 これは、全データが対象になります。(columns/nullCheck 属性は無効)
 AUTO は、command が、上記 NEW か ENTRY かを判断して処理を振り分けます。
 初期値は、AUTO です。

setMaxRowCount

public void setMaxRowCount(java.lang.String count)
【TAG】ENTRY時にチェックで選択された行数の最大値を設定します。

パラメータ:
count - 制限をかけたい行数(この件数と同じ場合は正常 )
説明:
 最大選択件数を超えた場合は,エラーメッセージを返します。
 例えば、1件のみを正常とする場合は、maxRowCount="1" とします。

setMinRowCount

public void setMinRowCount(java.lang.String count)
【TAG】ENTRY時にチェックで選択された行数の最小値を設定します。

パラメータ:
count - 制限をかけたい行数(この件数と同じ場合は正常 )
説明:
 最小選択件数を超えない場合は、エラーメッセージを返します。
 例えば、1件のみを正常とする場合は、minRowCount="1" とします。

setTableId

public void setTableId(java.lang.String id)
【TAG】(通常は使いません) sessionに登録されている DBTableModel を取り出すキーを指定します。

パラメータ:
id - sessionに登録する時の ID
説明:
 検索結果のDBTableModelを別メモリーに分ける場合は、このキーを指定します。
 その場合、メモリ上から削除する方法がないため(session タイムアウトで破棄)大量の
 データを分けた場合は、ご注意ください。
 初期値は、HybsSystem.TBL_MDL_KEY です。
変更履歴:
3.5.4.3 (2004/01/05) 新規追加

setMatchKeys

public void setMatchKeys(java.lang.String keys)
【TAG】正規表現でのマッチングを行うカラム列をカンマ区切りで指定します。

パラメータ:
keys - String
関連項目:
setMatchVals( String )
説明:
 matchKeys="AAA,BBB,CCC,DDD"
 matchKeys属性とmatchVals属性の個数は、同じでなければなりません。
 先に配列に分解してからリクエスト変数の値を取得するようにします。
 こうする事で、リクエストにカンマ区切りの値を設定できるようになります。
変更履歴:
4.0.0 (2005/11/30) 新規作成

setMatchVals

public void setMatchVals(java.lang.String vals)
【TAG】正規表現でのマッチングを行うカラム列に対する値(正規表現)をカンマ区切りで指定します。

パラメータ:
vals - String
関連項目:
setMatchKeys( String )
説明:
 matchVals="AAA,BBB,CCC,DDD"
 matchKeys属性とmatchVals属性の個数は、同じでなければなりません。
 先に配列に分解してからリクエスト変数の値を取得するようにします。
 こうする事で、リクエストにカンマ区切りの値を設定できるようになります。
変更履歴:
4.0.0 (2005/11/30) 新規作成

setRealTime

public void setRealTime(java.lang.String flg)
【TAG】(通常使いません)リアルタイムチェックを行う場合に有効にします。

パラメータ:
flg - 簡易表示を行うかどうか
説明:
 リアルタイムチェックを行う場合に有効にする属性です。
 trueが指定された場合、通常のチェックと比較し、以下の差異があります。
 ①エラー結果を簡易フォーマットで出力します。
   (ViewFormType="HTMLSimpleErrorList"で表示されます。)
   この簡易フォーマットで出力した場合は、ラベル(短)の定義で出力され、
   カラム名やデータ等は出力されません。
 ②must,mustAny属性のチェックを行いません。
   必須及び選択必須は、視覚的に判別できるため、リアルタイムチェックの
   対象外とします。
変更履歴:
4.3.3.0 (2008/10/01) 新規作成
4.3.7.0 (2009/06/01) viewSimple属性名称変更 -> isRealTime

setUseStrict

public void setUseStrict(java.lang.String flg)
【TAG】NEWの場合に、厳密にチェックするかどうかを指定します(初期値:false)

パラメータ:
flg - 厳密にチェックするかどうか(true:厳密/false:甘い)
説明:
 データをチェックするに当たり、あいまい検索などで厳密にチェックすると
 エラーになるケースがあるため、command="NEW" のチェック時には、甘い目の
 チェックを行っています。DBColumn#valueCheck( String , false )
 command="ENTRY" のチェックは、厳密なチェックです。
 このフラグは、検索時でも、厳密なチェックを行いたい場合に、true をセットします。
変更履歴:
5.2.2.0 (2010/11/01) 新規作成

toString

public java.lang.String toString()
このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。

オーバーライド:
クラス CommonTagSupport 内の toString
戻り値:
このクラスの文字列表現

openGion 5.3.9.0

Webアプリケーションフレームワーク openGion
SourceForge.JPCopyright (c) 2009 The openGion Project.