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

## org.opengion.hayabusa.taglib
クラス DataCheckTag

    java.lang.Object
      javax.servlet.jsp.tagext.TagSupport
          javax.servlet.jsp.tagext.BodyTagSupport
              org.opengion.hayabusa.taglib.CommonTagSupport
                  org.opengion.hayabusa.taglib.DataCheckTag

すべての実装されたインタフェース:
  Serializable, BodyTag, IterationTag, JspTag, Tag, TryCatchFinally

    public class DataCheckTag

extends CommonTagSupport

画面で入力されたデータのチェックを行うためのタグです。 commandがNEWの場合は検索条件等のリクエストパラメータに対してチェックを行います。 commandがENTRYの場合は、登録時のDBテーブルモデルに対するチェックを行います。 (値の取得は、先に選択された行のみについて、実行されます。) チェックを行うための定義は、SQL文 又は JavaScriptの式が記述可能です。 これらの式はタグのボディー部分に記述します。 SQL文によりチェックを行う場合は、必ず件数が返されるように記述して下さい(select count(*) ･･･ 等) このSQL文で取得された件数とexistの属性値とを照合しチェックを行います。 いずれの場合も、成立時は、正常とみなします。 （｢true:存在する｣ には、データが存在した場合に、ＯＫで、なければエラーです。） JavaScript式を記述する場合は、必ずtrue or falseを返す式を指定して下さい。 この式を評価した結果falseが返される場合は、エラーとみなします。 式に不等号等を使用する場合は、CDATAセクションで囲うようにして下さい。 また、いずれのチェック方法の場合でも、引数部に[カラム名]を用いたHybs拡張SQL文を 指定することが可能です。 メッセージIDの{0},{1}にはそれぞれ[カラム名]指定されたカラム名及びデータがカンマ区切りで 自動的に設定されます。

関連項目:
  直列化された形式
機能階層
  ＤＢ登録
形式サンプル:

       ●形式：
             ・<og:dataCheck
                          command       = "{@command}"
                          exist         = "[auto|true|false|one|notuse]"
                          errRemove     = "[true|false]"
                          msg           = "{@msg}"
                          msgParamKeys  = "ZY03"      : メッセージリソースのキーをカンマ区切りで指定。{2} 以降にセット
                          sqlType       = "{@sqlType}"
                          execType      = "INSERT|COPY|UPDATE|MODIFY|DELETE"  : sqlType を含む場合、実行
                          conditionKey  = "FGJ"        : 条件判定するカラムＩＤを指定(初期値は columnId )
                          conditionList = "0|1|8|9"    : 条件判定する値のリストを、"|"で区切って登録(初期値は、無条件)
                          uniqCheckKeys = "CLM,LANG"   : DBTableModel内でのユニークキーチェックを行うためのカラム
               >

       ●body：SQL文 又は JavaScript式

       ●使用例
             ・<og:dataCheck
                          command   = "ENTRY"
                          exist     = "true"
                          msg       = "MSG0001"
               >
                   select count(*) from GEA03 where clm = [CLM]
               </og:dataCheck>

                ・exist 属性の値に応じて、チェック方法が異なります。
                  [ auto , true , false , one , notuse が指定できます。]

             ・<og:dataCheck
                          command   = "ENTRY"
                          msg       = "MSG0001"
               >
                 <![CDATA[
                   [DYSTART] < [DY] && [DY] < [DYEND]
                 ]]>
               </og:dataCheck>

               ・<og:dataCheck
                          command   = "ENTRY"
                          msg       = "MSG0001"
               >
                 <![CDATA[
                   [GOKEI] < [TANKA] * [RITU]
                 ]]>
               </og:dataCheck>

変更履歴:

  4.1.1.1 (2008/02/22) 新規作成

バージョン
  4.0
作成者
  Hiroki Nakamura
導入されたバージョン:
  JDK5.0,

フィールドの概要
`static String` | `CMD_ENTRY` command 引数に渡す事の出来る コマンド "ENTRY"
`static String` | `CMD_NEW` command 引数に渡す事の出来る コマンド "NEW"

クラス 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`

コンストラクタの概要
`DataCheckTag()`

メソッドの概要
`int` | `doAfterBody()` Taglibのタグ本体を処理する doAfterBody() を オーバーライドします。
`int` | `doEndTag()` Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
`int` | `doStartTag()` Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。
`protected void` | `release2()` タグリブオブジェクトをリリースします。
`void` | `setCommand(String cmd)` 【TAG】コマンド(NEW or ENTRY)をセットします。
`void` | `setConditionKey(String key)` 【TAG】条件判定するカラムＩＤを指定します。
`void` | `setConditionList(String list)` 【TAG】条件判定する値のリストを、"|"で区切って登録します(初期値は、無条件)
`void` | `setDbid(String id)` 【TAG】(通常は使いません)Queryオブジェクトを作成する時のDB接続IDを指定します。
`void` | `setErrRemove(String flag)` 【TAG】エラー時の選択行を取り除いて継続処理を行うかどうかを指定します(初期値:false)。
`void` | `setExecType(String type)` 【TAG】このチェックを行う、実行タイプ を指定します。
`void` | `setExist(String ext)` 【TAG】データベースのチェック方法(auto/true/false/one/notuse)を指定します(初期値:｢auto:自動｣)。
`void` | `setMsg(String id)` 【TAG】メッセージIDを指定します。
`void` | `setMsgParamKeys(String keys)` 【TAG】メッセージリソースの引数をカンマ区切りで指定します。
`void` | `setSqlType(String type)` 【TAG】このチェックを行う、SQLタイプ を指定します。
`void` | `setTableId(String id)` 【TAG】(通常は使いません)結果をDBTableModelに書き込んで、sessionに登録するときのキーを指定します。
`void` | `setUniqCheckClms(String clm)` 【TAG】指定されたキーに従って、メモリ上のテーブルに対してユニークキーチェックを行います。
`String` | `toString()` このオブジェクトの文字列表現を返します。

クラス 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, isAjaxSubmitRequest, isDebug, isNoTransitionRequest, isNull, jspPrint, removeContextAttribute, removeObject, removeRequestAttribute, removeSessionAttribute, set, setAjaxSubmitRequest, setContextAttribute, setCookie, setDebug, setLanguage, setLbl, setMsglbl, setNoTransitionRequest, setObject, setParameterRows, setRequestAttribute, setRequestCacheData, setScope, setSessionAttribute, setUserInfo, setUseValue, startQueryTransaction, sys, sysBool, sysInt, useMainTrans, useQuotCheck, 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 String CMD_NEW

  command 引数に渡す事の出来る コマンド "NEW"

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

### CMD_ENTRY

    public static final String CMD_ENTRY

  command 引数に渡す事の出来る コマンド "ENTRY"

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

コンストラクタの詳細

### DataCheckTag

    public DataCheckTag()

メソッドの詳細

### doStartTag

    public int doStartTag()

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

  定義:
    インタフェース `Tag` 内の `doStartTag`
  オーバーライド:
    クラス `CommonTagSupport` 内の `doStartTag`
  戻り値:
    int
  変更履歴:

    4.1.1.0 (2008/02/22) 新規作成
    4.1.2.0 (2008/03/12) sqlType,execType 判定

### doAfterBody

    public int doAfterBody()

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

  定義:
    インタフェース `IterationTag` 内の `doAfterBody`
  オーバーライド:
    クラス `CommonTagSupport` 内の `doAfterBody`
  戻り値:
    int
  変更履歴:

    4.3.4.0 (2008/12/01) 新規追加

### doEndTag

    public int doEndTag()

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

  定義:
    インタフェース `Tag` 内の `doEndTag`
  オーバーライド:
    クラス `CommonTagSupport` 内の `doEndTag`
  戻り値:
    int
  変更履歴:

    4.1.1.0 (2008/02/22) 新規作成
    4.1.2.0 (2008/03/12) sqlType,execType 判定
    4.2.0.1 (2008/03/27) from を取得
    4.2.1.0 (2008/04/11) ErrMessageManager対応
    4.3.4.0 (2008/12/01) ユニークキーチェック対応。bodyContentの取得を#doAfterBody()で行う。

### release2

    protected void release2()

  タグリブオブジェクトをリリースします。 キャッシュされて再利用されるので、フィールドの初期設定を行います。

  オーバーライド:
    クラス `CommonTagSupport` 内の `release2`
  変更履歴:

    4.1.1.0 (2008/02/22) 新規作成
    4.1.2.0 (2008/03/12) sqlType , execType , isExec 追加
    4.2.0.1 (2008/03/27) conditionKey , conditionList , msgParamKeys 追加

### setTableId

    public void setTableId(String id)

  【TAG】(通常は使いません)結果をDBTableModelに書き込んで、sessionに登録するときのキーを指定します。

  パラメータ:
    `id` - sessionに登録する時の ID
  TagLib:

    初期値は、HybsSystem.TBL_MDL_KEY です。

### setDbid

    public void setDbid(String id)

  【TAG】(通常は使いません)Queryオブジェクトを作成する時のDB接続IDを指定します。

  パラメータ:
    `id` - データベース接続ID
  TagLib:

    Queryオブジェクトを作成する時のDB接続IDを指定します。

### setCommand

    public void setCommand(String cmd)

  【TAG】コマンド(NEW or ENTRY)をセットします。

  パラメータ:
    `cmd` - コマンド（public static final 宣言されている文字列)
  関連項目:
    コマンド定数
  TagLib:

    コマンドは,HTMLから（get/post)指定されますので,CMD_xxx で設定される フィールド定数値のいづれかを、指定できます。

### setExist

    public void setExist(String ext)

  【TAG】データベースのチェック方法(auto/true/false/one/notuse)を指定します(初期値:｢auto:自動｣)。

  パラメータ:
    `ext` - チェック方法（｢auto:自動｣、｢true:存在する｣、｢false:存在しない｣、｢one:ひとつ以下｣、｢notuse:チェックしない｣）
  TagLib:

    exist 属性に指定された 、｢true:存在する｣、｢false:存在しない｣、｢one:ひとつ以下｣、 の値は、いずれの場合も、成立時は、正常とみなします。 ｢auto:自動｣は、DBTableModeleのmodifyType(A,C,D)に応じて、チェックします。 A,C,D は、entryタグにコマンドを渡してデータを作成したときに、内部で作成されます。 (command="NEW"の場合は、trueと同じ動きになります。) notuse は、チェックを行いません。これは、このタグを共有使用する場合に、外部で チェックを行うかどうかを指定できるようにするために使用します。 （｢true:存在する｣ には、データが存在した場合に、ＯＫで、なければエラーです。） 初期値は、｢auto:自動｣です。

### setErrRemove

    public void setErrRemove(String flag)

  【TAG】エラー時の選択行を取り除いて継続処理を行うかどうかを指定します(初期値:false)。

  パラメータ:
    `flag` - エラー時の継続処理(true:エラー行番号を取り除き継続処理/false:エラー時停止)
  TagLib:

    exist 属性に指定された 、｢true:存在する｣、｢false:存在しない｣、｢one:ひとつ以下｣、 に対して、エラーが発生した選択行番号を、取り除いて以下の処理を継続するかどうかを 指定します。 true に設定した場合は、エラーデータを削除し、継続処理を行うことができます。 flase の場合は、エラーデータを表示して、継続処理を停止します。 初期値は、｢false:エラー時停止｣です。

### setMsg

    public void setMsg(String id)

  【TAG】メッセージIDを指定します。

  パラメータ:
    `id` - メッセージID
  関連項目:
    `setMsgParamKeys( String )`
  TagLib:

    メッセージIDを指定します。 各処理に応じた初期設定のメッセージIDは、以下の通りです。 exist="true" ERR0025=データ未登録エラー。キー={0}、値={1} のデータは、存在していません。 exist="false" ERR0026=データ登録済みエラー。キー={0}、値={1} のデータは、すでに存在しています。 exist="one" ERR0027=データ２重登録エラー。キー={0}、値={1} のデータは、重複して存在しています。 JavaScript ERR0030=入力したデータが不正です。key={0} value={1} 形式={2} 引数のパラメータには、通常、チェックに使用した実データが、DBTableModel から取得されます。 引数を変更する場合は、msgParamKeys を使用してください。

### setMsgParamKeys

    public void setMsgParamKeys(String keys)

  【TAG】メッセージリソースの引数をカンマ区切りで指定します。

  パラメータ:
    `keys` - メッセージリソースのキー(CSV)
  関連項目:
    `setMsg( String )`
  TagLib:

    メッセージリソースのキーをカンマ区切りで指定することで、設定します。 メッセージに引数( {0},{1} など ) がある場合、ここで指定した値を 順番に、{0},{1},{2}・・・ に当てはめていきます。 キーワードは、カンマ区切りで指定し、それを分解後、ラベルリソースで リソース変換を行います。(つまり、記述された値そのものでは在りません) PL/SQL では、"{#PN}" などと指定していた分は、同様に "PN" と指定しです。 内部的に、where 条件に指定されたキーと値は、@KEY と @VAL に、 from と where の間の文字列は、@TBL に対応付けられます。 {@XXXX} 変数も使用できます。実データの値を取出したい場合は、[PN]と すれば、DBTableModel の PN の値を取出します。 なにも指定しない場合は、キー={0} 、値={1}、from={2} です。

  変更履歴:

    4.2.0.1 (2008/03/27) 新規追加

### setSqlType

    public void setSqlType(String type)

  【TAG】このチェックを行う、SQLタイプ を指定します。

  パラメータ:
    `type` - このチェックを行う、SQLタイプ
  TagLib:

    SQLタイプは、INSERT,COPY,UPDATE,MODIFY,DELETE などの記号を指定します。 一般には、result 画面から update 画面へ遷移するときの、command と 同じにしておけばよいでしょう。 これは、execType とマッチした場合のみ、このチェックが処理されます。 簡易 equals タグの代役に使用できます。 なにも指定しない場合は、チェックは実行されます。

  変更履歴:

    4.1.2.0 (2008/03/12) 新規追加

### setExecType

    public void setExecType(String type)

  【TAG】このチェックを行う、実行タイプ を指定します。

  パラメータ:
    `type` - このチェックを行う、実行タイプ
  TagLib:

    実行タイプは、sqlType とマッチした場合のみ、このチェックが処理されます。 簡易 equals タグの代役に使用できます。 execType は、複数指定が可能です。単純な文字列マッチで、sqlType を 含めば、実行されます。 例えば、sqlType={@sqlType} execType="INSERT|COPY" とすれば、 sqlType に、INSERT または、COPY が登録された場合にチェックが掛かります。 なにも指定しない場合は、チェックは実行されます。

  変更履歴:

    4.1.2.0 (2008/03/12) 新規追加

### setConditionKey

    public void setConditionKey(String key)

  【TAG】条件判定するカラムＩＤを指定します。

  パラメータ:
    `key` - String
  関連項目:
    `setConditionList( String )`
  TagLib:

    指定のカラムＩＤの値と、conditionList の値を比較して、 存在する場合は、check処理を実行します。 この処理が有効なのは、command="ENTRY" の場合のみです。

  変更履歴:

    4.2.0.1 (2008/03/27) 新規追加

### setConditionList

    public void setConditionList(String list)

  【TAG】条件判定する値のリストを、"|"で区切って登録します(初期値は、無条件)

  パラメータ:
    `list` - String
  関連項目:
    `setConditionKey( String )`
  TagLib:

    conditionKey とペアで指定します。ここには、カラムの設定値のリストを 指定することで、複数条件(ＯＲ結合)での比較を行い、リストにカラム値が 存在する場合のみ、check処理を実行します。 この処理が有効なのは、command="ENTRY" の場合のみです。 設定しない場合は、無条件に実行します。

  変更履歴:

    4.2.0.1 (2008/03/27) 新規追加

### setUniqCheckClms

    public void setUniqCheckClms(String clm)

  【TAG】指定されたキーに従って、メモリ上のテーブルに対してユニークキーチェックを行います。

  パラメータ:
    `clm` - String
  TagLib:

    ユニークキーチェックを行うキーを指定します。ここで、指定されたキーに対して、 DBTableModelの値をチェックし、全てのキーに同じ値となっている行が存在すればエラーとなります。 このチェックは、command="ENTRY"の場合のみ有効です。 また、このチェックは他のチェック(DB存在チェックなど)と同時に処理することはできません。 キーが指定され手いる場合は、ボディ部分に記述されている定義は無視されます。 errRemoveの属性がtrueに指定されている場合、重複行は、DBTableModelの並び順から見て、 最初の行のみ処理され、2つめ以降の重複行は無視されます。 なお、キーはカンマ区切りで複数指定が可能です。

  変更履歴:

    4.3.4.0 (2008/12/01) 新規追加

### toString

    public String toString()

  このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。

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

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

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