クラス TableFilterTag
- java.lang.Object
-
- javax.servlet.jsp.tagext.TagSupport
-
- javax.servlet.jsp.tagext.BodyTagSupport
-
- org.opengion.hayabusa.taglib.CommonTagSupport
-
- org.opengion.hayabusa.taglib.TableFilterTag
-
- すべての実装されたインタフェース:
java.io.Serializable
,BodyTag
,IterationTag
,JspTag
,Tag
,TryCatchFinally
public class TableFilterTag extends CommonTagSupport
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 タグの対象です。- 関連項目:
- 直列化された形式
- 機能分類
- その他
- 形式サンプル:
- ●形式:<og:tableFilter classId="…" /> ●body:あり(EVAL_BODY_BUFFERED:BODYを評価し、{@XXXX} を解析します) ●Tag定義: <og:tableFilter classId ○【TAG】データベース処理を実行するクラスパスを指定します(必須)。 tableId 【TAG】(通常は使いません)DBTableModel sessionに登録されているキーを指定します 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>
- 変更履歴:
- 3.8.5.0 (2006/03/20) 新規作成
- バージョン
- 0.9.0 2000/10/17
- 作成者
- Kazuhiko Hasegawa
- 導入されたバージョン:
- JDK1.1,
-
-
フィールドの概要
-
クラスから継承されたフィールド org.opengion.hayabusa.taglib.CommonTagSupport
BR, BUFFER_MIDDLE, CR
-
クラスから継承されたフィールド 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
-
-
コンストラクタの概要
コンストラクタ コンストラクタ 説明 TableFilterTag()
デフォルトコンストラクター
-
メソッドの概要
すべてのメソッド インスタンス・メソッド concreteメソッド 修飾子とタイプ メソッド 説明 int
doAfterBody()
Taglibのタグ本体を処理する doAfterBody() を オーバーライドします。int
doEndTag()
Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。int
doStartTag()
Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。protected int[]
getParameterRows()
表示データの HybsSystem.ROW_SEL_KEY を元に、選ばれた 行を処理の対象とします。protected void
release2()
タグリブオブジェクトをリリースします。void
setClassId(java.lang.String id)
【TAG】データベース処理を実行するテーブルフィルターのクラスIDを指定します。void
setDbid(java.lang.String id)
【TAG】(通常は使いません)Queryオブジェクトを作成する時のDB接続IDを指定します。void
setKeys(java.lang.String key)
【TAG】リンク先に渡すキーを指定します。void
setModifyType(java.lang.String type)
【TAG】データ処理の方法[A:追加/C:更新/D:削除]を指定します(初期値:自動判定)。void
setSelectedAll(java.lang.String all)
【TAG】データを全件選択済みとして処理するかどうか[true/false]を指定します(初期値:false)。void
setStopZero(java.lang.String cmd)
【TAG】検索結果が0件のとき処理を停止するかどうか[true/false]を指定します(初期値:false[続行する])。void
setTableId(java.lang.String id)
【TAG】(通常は使いません)結果のDBTableModelを、sessionに登録するときのキーを指定します (初期値:HybsSystem#TBL_MDL_KEY[=])。void
setUseSLabel(java.lang.String prm)
【TAG】エラーメッセージにSLABELを利用するかどうか[true/false]を指定します(初期値:false)。void
setVals(java.lang.String val)
【TAG】names属性に対応する値をCSV形式で複数指定します。java.lang.String
toString()
このオブジェクトの文字列表現を返します。-
クラスから継承されたメソッド org.opengion.hayabusa.taglib.CommonTagSupport
add, add, addEventColumn, addEventColumn, check, commitTableObject, debugPrint, doCatch, doFinally, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getContextAttribute, getContextPath, getCookie, getCSVParameter, getCSVParameter, getDataCondition, getDateFormat, getDBColumn, getDBFunctionName, getDocumentLink, getGUIInfo, getGUIInfoAttri, getHostName, getLabel, getLabelInterface, getLanguage, getLASTAttri, getLongLabel, getMsg, getMsglbl, getNVLAttri, getObject, getParameterNames, getRequest, getRequestAttribute, getRequestCacheData, getRequestMethod, getRequestParameter, getRequestParameterValues, getRequestValue, getRequestValue, getRequestValues, getReservedParameter, getReservedValue, getResource, getSanitizedBodyString, getScope, getSessionAttribute, getSumRequestValue, 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
-
クラスから継承されたメソッド 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
-
-
-
-
メソッドの詳細
-
doStartTag
public int doStartTag()
Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。- 定義:
doStartTag
インタフェース内Tag
- オーバーライド:
doStartTag
クラス内CommonTagSupport
- 戻り値:
- 後続処理の指示( EVAL_BODY_BUFFERED )
- 変更履歴:
- 5.7.7.2 (2014/06/20) caseKey,caseVal,caseNN,caseNull 属性を追加
-
doAfterBody
public int doAfterBody()
Taglibのタグ本体を処理する doAfterBody() を オーバーライドします。- 定義:
doAfterBody
インタフェース内IterationTag
- オーバーライド:
doAfterBody
クラス内CommonTagSupport
- 戻り値:
- 後続処理の指示(SKIP_BODY)
- 変更履歴:
- 5.6.5.2 (2013/06/21) bodyローカル化、sql、paramMap 追加
-
doEndTag
public int 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 属性を追加。
-
release2
protected void 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
protected int[] getParameterRows()
表示データの HybsSystem.ROW_SEL_KEY を元に、選ばれた 行を処理の対象とします。- オーバーライド:
getParameterRows
クラス内CommonTagSupport
- 戻り値:
- 選択行の配列
- 変更履歴:
- 6.3.9.0 (2015/11/06) コンストラクタで初期化されていないフィールドを null チェックなしで利用している(findbugs)
- このメソッドは、nullを返しません
-
setClassId
public void setClassId(java.lang.String id)
【TAG】データベース処理を実行するテーブルフィルターのクラスIDを指定します。- パラメータ:
id
- 実行クラスID- 関連項目:
TableFilter インターフェース
- 説明:
- ここで指定するクラスIDは、システムリソース にて TableFilter の サブクラス(インターフェース継承)として指定する必要があります。 クラス自身は、org.opengion.hayabusa.db.TableFilter インターフェースを継承している必要があります。
-
setTableId
public void setTableId(java.lang.String id)
【TAG】(通常は使いません)結果のDBTableModelを、sessionに登録するときのキーを指定します (初期値:HybsSystem#TBL_MDL_KEY[=])。- パラメータ:
id
- テーブルID (sessionに登録する時のID)- 説明:
- 検索結果より、DBTableModelオブジェクトを作成します。これを、下流のviewタグ等に 渡す場合に、通常は、session を利用します。その場合の登録キーです。 query タグを同時に実行して、結果を求める場合、同一メモリに配置される為、 この tableId 属性を利用して、メモリ空間を分けます。 (初期値:HybsSystem#TBL_MDL_KEY[=])。
-
setSelectedAll
public void setSelectedAll(java.lang.String all)
【TAG】データを全件選択済みとして処理するかどうか[true/false]を指定します(初期値:false)。- パラメータ:
all
- 全件選択済み [true:全件選択済み/false:通常]- 説明:
- 全てのデータを選択済みデータとして扱って処理します。 全件処理する場合に、指定します。(true/false) デフォルト false です。
-
setStopZero
public void setStopZero(java.lang.String cmd)
【TAG】検索結果が0件のとき処理を停止するかどうか[true/false]を指定します(初期値:false[続行する])。- パラメータ:
cmd
- 0件時停止可否 [true:処理を中止する/false:続行する]- 説明:
- 初期値は、false(続行する)です。
- 変更履歴:
- 5.7.6.2 (2014/05/16) 新規追加
-
setModifyType
public void setModifyType(java.lang.String type)
【TAG】データ処理の方法[A:追加/C:更新/D:削除]を指定します(初期値:自動判定)。- パラメータ:
type
- 処理方法 [A:追加/C:更新/D:削除]- 説明:
- 通常は、DBTableModel に自動設定されている modifyType を元に、データ処理方法を 選別します。(A:追加 C:更新 D:削除) この場合、行単位で modifyType の値を取得して判別する必要がありますが、一般には 処理対象は、全件おなじ modifyType である可能性が高いです。 また、selectedAll などで強制的に全件処理対象とする場合は、modifyType に値が 設定さていません。その様な場合に外部より modifyType を指定します。 初期値は、自動判定 です。
-
setKeys
public void setKeys(java.lang.String key)
【TAG】リンク先に渡すキーを指定します。- パラメータ:
key
- リンク先に渡すキー- 説明:
- 戻る時に、検索時のキャッシュに指定した引数以外に指定したり、別の値に置き換えたり する場合のキーを設定できます。CSV形式で複数指定できます。 vals 属性には、キーに対応する値を、設定してください。 分解方法は、CSV変数を先に分解してから、getRequestParameter で値を取得します。 こうしないとデータ自身にカンマを持っている場合に分解をミスる為です。
-
setVals
public void setVals(java.lang.String val)
【TAG】names属性に対応する値をCSV形式で複数指定します。- パラメータ:
val
- names属性に対応する値 (CSV形式)- 説明:
- キーに設定した値を、CSV形式で複数して出来ます。 指定順序は、キーと同じにしておいて下さい。 分解方法は、CSV変数を先に分解してから、getRequestParameter で値を取得します。 こうしないとデータ自身にカンマを持っている場合に分解をミスる為です。
-
setDbid
public void setDbid(java.lang.String id)
【TAG】(通常は使いません)Queryオブジェクトを作成する時のDB接続IDを指定します。- パラメータ:
id
- データベース接続ID- 説明:
- Queryオブジェクトを作成する時のDB接続IDを指定します。 これは、システムリソースで、DEFAULT_DB_URL 等で指定している データベース接続先 情報に、XX_DB_URL を定義することで、 dbid="XX" とすると、この 接続先を使用して データベースにアクセスできます。
-
setUseSLabel
public void setUseSLabel(java.lang.String prm)
【TAG】エラーメッセージにSLABELを利用するかどうか[true/false]を指定します(初期値:false)。- パラメータ:
prm
- SLABEL利用 [true:利用する/false:利用しない]- 説明:
- 通常のエラーメッセージは、ラベル(長)が使われますが、これをラベル(短)を使いたい場合に、true にセットします。 ここでのラベル(短)は、タグ修飾なしの、ラベル(短)です。 標準はfalse:利用しない=ラベル(長)です。 true/false以外を指定した場合はfalse扱いとします。 ラベルリソースの概要説明があれば表示しますが、useSLabel="true" 時は、概要説明を表示しません。
- 変更履歴:
- 7.0.7.0 (2019/12/13) 新規追加
-
toString
public java.lang.String toString()
このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。- オーバーライド:
toString
クラス内CommonTagSupport
- 戻り値:
- このクラスの文字列表現
- このメソッドは、nullを返しません
-
-