クラス TableFilterTag
java.lang.Object
jakarta.servlet.jsp.tagext.TagSupport
jakarta.servlet.jsp.tagext.BodyTagSupport
org.opengion.hayabusa.taglib.CommonTagSupport
org.opengion.hayabusa.taglib.TableFilterTag
- すべての実装されたインタフェース:
BodyTag
,IterationTag
,JspTag
,Tag
,TryCatchFinally
,Serializable
TableFilter のサブクラスをCALLしてDBTableModelにアクセスするタグです。
DBTableModel を TableFilter のサブクラス(classIdで指定)に渡して処理を実行します。
クラスを作成する場合は、org.opengion.hayabusa.db.TableFilter インターフェースを継承した
クラスにする必要があります。また、classId 属性には、システムリソース で
設定した TableFilter.XXXX の XXXX を指定します。
BODY部分は、SQLを記述する為だけに使っていましたが、CSS定義形式の書式で、keys,vals を記述
できるようにします。
これは、下記のようなパラメータを、keys="KEY,KEY2,KEY3" vals='AAAA,"BB,CC,DD",EE' のような記述形式と
{
KEY1 : AAAA ;
KEY2 : BB,CC,DD ;
KEY3 : EE ;
・・・・・・
}
のような、CSS形式に類似の形式でも記述できるようにしました。
keys,vals と CSS定義形式パラメータを同時に指定した場合は、両方とも有効です。
ただし、キーが重複した場合は、不定と考えてください。
現時点では、CSS定義形式パラメータが優先されますが、これは、単に内部パラメータMapへの
登録順が、CSS定義形式パラメータが後の為、上書きされるためです。
※ このタグは、Transaction タグの対象です。
- 関連項目:
- 変更履歴:
- 3.8.5.0 (2006/03/20) 新規作成
- 機能分類
- その他
- 形式サンプル:
- ●形式:<og:tableFilter classId="…" /> ●body:あり(EVAL_BODY_BUFFERED:BODYを評価し、{@XXXX} を解析します) ●Tag定義: <og:tableFilter classId ○【TAG】データベース処理を実行するクラスパスを指定します(必須)。 tableId 【TAG】(通常は使いません)DBTableModel sessionに登録されているキーを指定します viewMarkerId 【TAG】(通常は使いません)requestから取得する ViewMarker に対応する Attributes オブジェクトの ID modifyType 【TAG】データ処理の方法(A:追加 C:更新 D:削除)を指定します keys 【TAG】リンク先に渡すキーを指定します vals 【TAG】keys属性に対応する値をCSV形式で複数指定します selectedAll 【TAG】データを全件選択済みとして処理するかどうか[true/false]を指定します(初期値:false) stopZero 【TAG】検索結果が0件のとき処理を続行するかどうか[true/false]を指定します(初期値:false[続行する]) scope 【TAG】キャッシュする場合のスコープ[request/page/session/application]を指定します(初期値:session) dbid 【TAG】(通常は使いません)Queryオブジェクトを作成する時のDB接続IDを指定します useSLabel 【TAG】7.0.7.0 (2019/12/13) エラーメッセージにSLABELを利用するかどうか[true/false]を指定します(初期値:false) caseKey 【TAG】このタグ自体を利用するかどうかの条件キーを指定します(初期値:null) 5.7.7.2 (2014/06/20) caseVal 【TAG】このタグ自体を利用するかどうかの条件値を指定します(初期値:null) 5.7.7.2 (2014/06/20) caseNN 【TAG】指定の値が、null/ゼロ文字列 でない場合(Not Null=NN)は、このタグは使用されます(初期値:判定しない) 5.7.7.2 (2014/06/20) caseNull 【TAG】指定の値が、null/ゼロ文字列 の場合は、このタグは使用されます(初期値:判定しない) 5.7.7.2 (2014/06/20) caseIf 【TAG】指定の値が、true/TRUE文字列の場合は、このタグは使用されます(初期値:判定しない) debug 【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false) > ... Body ... </og:tableFilter> ●使用例 ・引数/プロシジャーを直接書く場合 【entry.jsp】 <og:tableFilter classId = "WL_LOGICSET" :TableFilter のサブクラス(実行クラス) tableId = "WL0000" :登録元のDBTableModelのsession/request変数内の取得キー keys = "AA,BB,CC" :実行クラスへの引数のキー vals = "{@AA},{@BB},{@CC}" :実行クラスへの引数の値 selectedAll = "false/true" :処理対象の行を全行選択するかどうか(初期値:false) modifyType = "A/C/D" :処理の方法(A:追加 C:更新 D:削除)を指定します。初期値は自動です。 /> ・BODY部分に、CSS形式のパラメータ(keys,vals)を記述する例 <og:tableFilter classId = "WL_LOGICSET" :TableFilter のサブクラス(実行クラス) tableId = "WL0000" :登録元のDBTableModelのsession/request変数内の取得キー selectedAll = "false/true" :処理対象の行を全行選択するかどうか(初期値:false) modifyType = "A/C/D" :処理の方法(A:追加 C:更新 D:削除)を指定します。初期値は自動です。 > { AA : {@AA} BB : {@BB} CC : {@CC} } </og:tableFilter>
- 導入されたバージョン:
- JDK1.1,
-
フィールドの概要
クラスから継承されたフィールド org.opengion.hayabusa.taglib.CommonTagSupport
BR, BUFFER_MIDDLE, CR
クラスから継承されたフィールド jakarta.servlet.jsp.tagext.BodyTagSupport
bodyContent
クラスから継承されたフィールド jakarta.servlet.jsp.tagext.TagSupport
id, pageContext
インタフェースから継承されたフィールド jakarta.servlet.jsp.tagext.BodyTag
EVAL_BODY_BUFFERED, EVAL_BODY_TAG
インタフェースから継承されたフィールド jakarta.servlet.jsp.tagext.IterationTag
EVAL_BODY_AGAIN
インタフェースから継承されたフィールド jakarta.servlet.jsp.tagext.Tag
EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE
-
コンストラクタの概要
コンストラクタ -
メソッドの概要
修飾子とタイプメソッド説明int
Taglibのタグ本体を処理する doAfterBody() を オーバーライドします。int
doEndTag()
Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。int
Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。protected int[]
表示データの HybsSystem.ROW_SEL_KEY を元に、選ばれた 行を処理の対象とします。protected void
release2()
タグリブオブジェクトをリリースします。void
setClassId
(String id) 【TAG】データベース処理を実行するテーブルフィルターのクラスIDを指定します。void
【TAG】(通常は使いません)Queryオブジェクトを作成する時のDB接続IDを指定します。void
【TAG】リンク先に渡すキーを指定します。void
setModifyType
(String type) 【TAG】データ処理の方法[A:追加/C:更新/D:削除]を指定します(初期値:自動判定)。void
setSelectedAll
(String all) 【TAG】データを全件選択済みとして処理するかどうか[true/false]を指定します(初期値:false)。void
setStopZero
(String flag) 【TAG】検索結果が0件のとき処理を停止するかどうか[true/false]を指定します(初期値:false[続行する])。void
setTableId
(String id) 【TAG】(通常は使いません)結果のDBTableModelを、sessionに登録するときのキーを指定します (初期値:HybsSystem#TBL_MDL_KEY[=])。void
setUseSLabel
(String prm) 【TAG】エラーメッセージにSLABELを利用するかどうか[true/false]を指定します(初期値:false)。void
【TAG】names属性に対応する値をCSV形式で複数指定します。void
【TAG】(通常は使いません)requestから取得する ViewMarker に対応する Attributes オブジェクトの ID。toString()
このオブジェクトの文字列表現を返します。クラスから継承されたメソッド org.opengion.hayabusa.taglib.CommonTagSupport
add, add, addEventColumn, addEventColumn, check, commitTableObject, debugPrint, debugPrint, doCatch, doFinally, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getContextAttribute, getContextPath, getCookie, getCSVParameter, getCSVParameter, getDateFormat, getDBColumn, getDBFunctionName, getDocumentLink, getGUIInfo, getGUIInfoAttri, getHostName, getLabel, getLabelInterface, getLanguage, getLongLabel, getMsg, getMsglbl, getObject, getParameterNames, getRequest, getRequestAttribute, getRequestCacheData, getRequestMethod, getRequestParameter, getRequestParameterValues, getRequestValue, getRequestValue, getRequestValues, getReservedParameter, getReservedValue, getResource, getSanitizedBodyString, getScope, getSessionAttribute, getTagName, getTransaction, getUser, getUserEditInfo, getUserInfo, isAjaxSubmitRequest, isDebug, isNoTransitionRequest, isNull, jspPrint, makeUrl, removeContextAttribute, removeObject, removeRequestAttribute, removeSessionAttribute, set, setAjaxSubmitRequest, setCaseIf, setCaseKey, setCaseNN, setCaseNull, setCaseVal, setContextAttribute, setCookie, setDebug, setLanguage, setLbl, setNoTransitionRequest, setObject, setObject, setParameterNames, setParameterRows, setRequestAttribute, setRequestCacheData, setScope, setSessionAttribute, setUserInfo, startQueryTransaction, sys, sysBool, sysInt, useMainTrans, useQuotCheck, useTag, useXssCheck
クラスから継承されたメソッド jakarta.servlet.jsp.tagext.BodyTagSupport
doInitBody, getBodyContent, getPreviousOut, release, setBodyContent
クラスから継承されたメソッド jakarta.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
インタフェースから継承されたメソッド jakarta.servlet.jsp.tagext.Tag
getParent, setPageContext, setParent
-
コンストラクタの詳細
-
TableFilterTag
public TableFilterTag()デフォルトコンストラクター- 変更履歴:
- 6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor.
-
-
メソッドの詳細
-
doStartTag
Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。- 定義:
doStartTag
インタフェース内Tag
- オーバーライド:
doStartTag
クラス内CommonTagSupport
- 戻り値:
- 後続処理の指示( EVAL_BODY_BUFFERED )
- 変更履歴:
- 5.7.7.2 (2014/06/20) caseKey,caseVal,caseNN,caseNull 属性を追加
-
doAfterBody
Taglibのタグ本体を処理する doAfterBody() を オーバーライドします。- 定義:
doAfterBody
インタフェース内IterationTag
- オーバーライド:
doAfterBody
クラス内CommonTagSupport
- 戻り値:
- 後続処理の指示(SKIP_BODY)
- 変更履歴:
- 5.6.5.2 (2013/06/21) bodyローカル化、sql、paramMap 追加, 5.6.5.2 (2013/06/21) bodyローカル化、sql、paramMap 追加, 8.0.0.0 (2021/10/01) ロジック間違い。DBSELECTのSQL文は、{}の中は処理しない
-
doEndTag
Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。- 定義:
doEndTag
インタフェース内Tag
- オーバーライド:
doEndTag
クラス内CommonTagSupport
- 戻り値:
- 後続処理の指示
- 変更履歴:
- 3.8.7.0 (2006/12/15) アクセスログ取得の為、ApplicationInfoオブジェクトを設定, 4.2.3.0 (2008/06/23) DBIDとボディー部分の記述を下位クラスに渡す用に修正, 4.3.7.4 (2009/07/01) Resouceオブジェクトを下位クラスに渡す用に修正, 5.1.9.0 (2010/08/01) Transaction 対応, 5.2.1.0 (2010/10/01) debugPrint() メソッドの処理条件見直し, 5.3.7.0 (2011/07/01) TransactionReal の引数変更 、Transaction対応で、close処理を入れる。, 5.6.5.2 (2013/06/21) bodyローカル化、sql、paramMap 追加, 5.7.6.2 (2014/05/16) table件数が変わる場合、"DB.COUNT" キーでリクエストに再セットする。, 5.7.7.2 (2014/06/20) caseKey,caseVal,caseNN,caseNull 属性を追加, 6.0.4.0 (2014/11/28) NullPointerException が発生するので、事前にチェックします。, 6.3.6.1 (2015/08/28) Transaction でAutoCloseableを使用したtry-with-resources構築に対応。, 6.4.3.3 (2016/03/04) HybsSystem.newInstance(String,String) への置き換え。, 7.0.7.0 (2019/12/13) useSLabel 属性を追加。, 8.0.0.0 (2021/09/30) viewMarker追加
-
release2
タグリブオブジェクトをリリースします。 キャッシュされて再利用されるので、フィールドの初期設定を行います。- オーバーライド:
release2
クラス内CommonTagSupport
- 変更履歴:
- 5.6.5.2 (2013/06/21) body廃止、sql、paramMap 追加, 5.7.6.2 (2014/05/16) stopZero属性追加, 7.0.7.0 (2019/12/13) useSLabel 属性を追加。
-
getParameterRows
表示データの HybsSystem.ROW_SEL_KEY を元に、選ばれた 行を処理の対象とします。- オーバーライド:
getParameterRows
クラス内CommonTagSupport
- 戻り値:
- 選択行の配列
- 変更履歴:
- 6.3.9.0 (2015/11/06) コンストラクタで初期化されていないフィールドを null チェックなしで利用している(findbugs)
- このメソッドは、nullを返しません
-
setClassId
【TAG】データベース処理を実行するテーブルフィルターのクラスIDを指定します。- パラメータ:
id
- 実行クラスID- 関連項目:
- 説明:
- ここで指定するクラスIDは、システムリソース にて TableFilter の サブクラス(インターフェース継承)として指定する必要があります。 クラス自身は、org.opengion.hayabusa.db.TableFilter インターフェースを継承している必要があります。
-
setTableId
【TAG】(通常は使いません)結果のDBTableModelを、sessionに登録するときのキーを指定します (初期値:HybsSystem#TBL_MDL_KEY[=])。- パラメータ:
id
- テーブルID (sessionに登録する時のID)- 説明:
- 検索結果より、DBTableModelオブジェクトを作成します。これを、下流のviewタグ等に 渡す場合に、通常は、session を利用します。その場合の登録キーです。 query タグを同時に実行して、結果を求める場合、同一メモリに配置される為、 この tableId 属性を利用して、メモリ空間を分けます。 (初期値:HybsSystem#TBL_MDL_KEY[=])。
-
setViewMarkerId
【TAG】(通常は使いません)requestから取得する ViewMarker に対応する Attributes オブジェクトの ID。- パラメータ:
id
- ViewMarkerオブジェクトID- 変更履歴:
- 8.0.0.0 (2021/09/30) viewMarker追加
- 説明:
- ViewForm オブジェクトに、ViewMarker オブジェクトをこのキーより取得することにより、 カラムに対して、マーカー情報を付加して表示させる。 初期値は、HybsSystem.VIEW_MARK_KEY です。
-
setSelectedAll
【TAG】データを全件選択済みとして処理するかどうか[true/false]を指定します(初期値:false)。- パラメータ:
all
- 全件選択済み [true:全件選択済み/false:通常]- 説明:
- 全てのデータを選択済みデータとして扱って処理します。 全件処理する場合に、指定します。(true/false) デフォルト false です。
-
setStopZero
【TAG】検索結果が0件のとき処理を停止するかどうか[true/false]を指定します(初期値:false[続行する])。- パラメータ:
flag
- 0件時停止可否 [true:処理を中止する/false:続行する]- 変更履歴:
- 5.7.6.2 (2014/05/16) 新規追加
- 説明:
- 初期値は、false(続行する)です。
-
setModifyType
【TAG】データ処理の方法[A:追加/C:更新/D:削除]を指定します(初期値:自動判定)。- パラメータ:
type
- 処理方法 [A:追加/C:更新/D:削除]- 説明:
- 通常は、DBTableModel に自動設定されている modifyType を元に、データ処理方法を 選別します。(A:追加 C:更新 D:削除) この場合、行単位で modifyType の値を取得して判別する必要がありますが、一般には 処理対象は、全件おなじ modifyType である可能性が高いです。 また、selectedAll などで強制的に全件処理対象とする場合は、modifyType に値が 設定さていません。その様な場合に外部より modifyType を指定します。 初期値は、自動判定 です。
-
setKeys
【TAG】リンク先に渡すキーを指定します。- パラメータ:
key
- リンク先に渡すキー- 説明:
- 戻る時に、検索時のキャッシュに指定した引数以外に指定したり、別の値に置き換えたり する場合のキーを設定できます。CSV形式で複数指定できます。 vals 属性には、キーに対応する値を、設定してください。 分解方法は、CSV変数を先に分解してから、getRequestParameter で値を取得します。 こうしないとデータ自身にカンマを持っている場合に分解をミスる為です。
-
setVals
【TAG】names属性に対応する値をCSV形式で複数指定します。- パラメータ:
val
- names属性に対応する値 (CSV形式)- 説明:
- キーに設定した値を、CSV形式で複数して出来ます。 指定順序は、キーと同じにしておいて下さい。 分解方法は、CSV変数を先に分解してから、getRequestParameter で値を取得します。 こうしないとデータ自身にカンマを持っている場合に分解をミスる為です。
-
setDbid
【TAG】(通常は使いません)Queryオブジェクトを作成する時のDB接続IDを指定します。- パラメータ:
id
- データベース接続ID- 説明:
- Queryオブジェクトを作成する時のDB接続IDを指定します。 これは、システムリソースで、DEFAULT_DB_URL 等で指定している データベース接続先 情報に、XX_DB_URL を定義することで、 dbid="XX" とすると、この 接続先を使用して データベースにアクセスできます。
-
setUseSLabel
【TAG】エラーメッセージにSLABELを利用するかどうか[true/false]を指定します(初期値:false)。- パラメータ:
prm
- SLABEL利用 [true:利用する/false:利用しない]- 変更履歴:
- 7.0.7.0 (2019/12/13) 新規追加
- 説明:
- 通常のエラーメッセージは、ラベル(長)が使われますが、これをラベル(短)を使いたい場合に、true にセットします。 ここでのラベル(短)は、タグ修飾なしの、ラベル(短)です。 標準はfalse:利用しない=ラベル(長)です。 true/false以外を指定した場合はfalse扱いとします。 ラベルリソースの概要説明があれば表示しますが、useSLabel="true" 時は、概要説明を表示しません。
-
toString
このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。- オーバーライド:
toString
クラス内CommonTagSupport
- 戻り値:
- このクラスの文字列表現
- このメソッドは、nullを返しません
-