概要 | パッケージ | クラス | 階層ツリー | 非推奨 API | 索引 | ヘルプ
openGion 5.4.3.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 の内、どれか２つが必須。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 の内、どれか２つが必須。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` - 制限をかけたい行数（この件数と同じ場合は正常 ）
  説明:

         最大選択件数を超えた場合は,エラーメッセージを返します。
         例えば、１件のみを正常とする場合は、maxRowCount="1" とします。

### setMinRowCount

    public void setMinRowCount(java.lang.String count)

  【TAG】ENTRY時にチェックで選択された行数の最小値を設定します。

  パラメータ:
    `count` - 制限をかけたい行数（この件数と同じ場合は正常 ）
  説明:

         最小選択件数を超えない場合は、エラーメッセージを返します。
         例えば、１件のみを正常とする場合は、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`
  戻り値:
    このクラスの文字列表現

概要 | パッケージ | クラス | 階層ツリー | 非推奨 API | 索引 | ヘルプ
| openGion 5.4.3.0
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

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