クラス ValueMapTag

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

    public class ValueMapTag
    extends CommonTagSupport
    DBTableModelオブジェクトから、指定のキー情報と、レコードから、Mapオブジェクトを作成し、それを、 BODY部のフォーマットに対応して、出力します。 valueタグの、command="MAPOBJ" や、ALL_MAPOBJ に相当する処理を、複数キーと行レベルのデータで 管理します。 設定した値は、Mapを優先した、特殊な、{@XXXX} 形式で 取り出すことができます。 keys で、CSV形式でカラム名を指定し、これらを、連結した文字列を、Mapのキー情報に使います。 Mapの値情報は、そのレコードの配列になります。 keys を指定しない場合は、最初のカラムの値が、キーになります。 キーが重複する場合、先に現れたデータが優先されます。 値の取出し方法は、キーに対して、{@XXXX} 形式を、適用します。 Map に存在しないキーは、リクエスト変数や、通常のvalus変数を見ます。 valClm で、{@XXXX} 形式で取り出す値のカラムを指定できます。 valClm を指定しない場合は、2番目のカラムを使用します。 特殊機能 ・holdTag属性:{@XXXX} を、指定のタグで囲います。 例えば、holdTag="span" とすると、<span class="YYYYの値" >XXXXの値</span> という文字列を作成します。 ・clsClms属性:先の指定のタグで囲う場合、そのタグのclass属性を指定できます。 複数指定した場合は、スペースで、連結します。 ・{@XXXX cls="B"} とすると、個別の clsClms の値を使用せず、この値を、class属性として使います。 clsClms と同様に、holsTag属性を指定しておく必要があります。 ・tipsClms属性:先の指定のタグで囲う場合、そのタグのtitle属性を指定できます。 マウスオーバーで、チップス表示されます。 ・{@XXXX tips="YYYY"} とすると、個別の tipsClms の値を使用せず、この値を、title属性として使います。 tipsClms と同様に、holsTag属性を指定しておく必要があります。 ・nnClms属性:この属性で指定された値が、nullの場合、{@XXXX} の解析を行いません。 正確に言うと、Mapに取り込みません。この場合、先のholdTag属性で指定したタグそのものも 出力しません。 ・{@XXXX* str="val"} とすると、キーワードのあいまい検索部分に、strで指定した val文字列が存在する場合のみ有効とします。 ・キーに対して、Mapは、行データ全部を持っています。{@XXXX} は、最初のカラムの値です。 ・2番目を取得する場合は、{@XXXX 1}と、3番目は、{@XXXX 2}と指定します。 ・{@XXXX*} を指定すると、キーのあいまい検索で、キーそのものを複数選択することが出来ます。 この場合、spanタグで囲う機能と併用すると、複数のspanタグを持つ文字列を合成できます。 この特定のタグは、holdTag 属性で指定します。 このキーのあいまい検索で、表示する順番は、DBTableModelでMapに読み込んだ順番になります。 {@XXXX* 2} のような、取得カラムの指定も可能です。 取得カラムの指定も可能ですが、カラム番号は、常に一番最後に記述してください。 ・{@XXXX!*} とすると、表示する順番を、逆順にすることが出来ます。取得カラムの指定も可能です。 ・{@$XXXX} とすると、holdTagも、clsClms も使用せず、設定値のみ出力します。 この場合は、固定値になるため、holsTagも、clsClms も使用しません。 ・{@*XXXX!*} とすると、キーのあいまい指定の残り部分の文字列を出力します。連番の場合の番号を取り出せます。 ・{@^XXXX} とすると、request.getAttribute()の値を優先して使用します。{@^XXXX*}などのあいまい指定も可能です。 この場合、オリジナルのキーは、DBTableModel上に必要です。値の入れ替えのみ、行う感じです。 ※ このタグは、Transaction タグの対象です。
    関連項目:
    直列化された形式
    機能分類
    その他部品
    形式サンプル:
    ●形式:<og:valueMap /> ●body:あり(EVAL_BODY_BUFFERED:BODYを評価し、{@XXXX} を特殊な方法で解析します) ●Tag定義: <og:valueMap keys 【TAG】パラメータから取り出すキーとなるカラム名を、CSV形式で指定します(初期値:最初のカラム) valClm 【TAG】パラメータから取り出す値のカラム名を指定します(初期値:2番目のカラム) holdTag 【TAG】値の前後を、指定のタグで挟みます clsClms 【TAG】holdTagを使用するとき、そのタグの属性にclass属性を出力する場合のカラム名をCSV形式で指定します tipsClms 【TAG】holdTagを使用するとき、そのタグの属性にtitle属性を出力する場合のカラム名をCSV形式で指定します nnClms 【TAG】パラメータが NULL の時に、設定しないカラム名を、CSV形式で指定します reqAttUpClms 【TAG】{@^XXXX}使用時に request.getAttribute() をセットすると同時に設定するカラム名をCSV形式で指定します 6.9.2.0 (2018/03/05) selectedAll 【TAG】データを全件選択済みとして処理するかどうか[true/false]を指定します(初期値:true) separator 【TAG】キーとなるカラム名の値を連結する項目区切り文字をセットします(初期値:"_") tableId 【TAG】sessionから取得する DBTableModelオブジェクトの ID(初期値:HybsSystem.TBL_MDL_KEY) scope 【TAG】DBTableModelオブジェクトを取得する場合の、scope(初期値:session) xssCheck 【TAG】パラメータの HTMLTag開始/終了文字(><) 存在チェックを実施するかどうか[true/false]を設定します (初期値:USE_XSS_CHECK[=true]) caseKey 【TAG】このタグ自体を利用するかどうかの条件キーを指定します(初期値:null) caseVal 【TAG】このタグ自体を利用するかどうかの条件値を指定します(初期値:null) caseNN 【TAG】指定の値が、null/ゼロ文字列 でない場合(Not Null=NN)は、このタグは使用されます(初期値:判定しない) caseNull 【TAG】指定の値が、null/ゼロ文字列 の場合は、このタグは使用されます(初期値:判定しない) caseIf 【TAG】指定の値が、true/TRUE文字列の場合は、このタグは使用されます(初期値:判定しない) debug 【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false) > ... Body ... </og:valueMap> ●使用例 <og:query command="{@command}" debug="{@debug}" maxRowCount="{@maxRowCount}"> select CLM,NAME_JA,LABEL_NAME,KBSAKU,SYSTEM_ID,LANG, FGJ,USRSET,DYSET,USRUPD,DYUPD from GF41 <og:where> <og:and value = "SYSTEM_ID = '{@SYSTEM_ID}'" /> <og:and value = "LANG = '{@LANG}'" /> <og:and value = "CLM like '{@CLM}'" /> <og:and value = "NAME_JA like '{@NAME_JA}'" /> <og:and value = "LABEL_NAME like '{@LABEL_NAME}'" /> <og:and value = "KBSAKU = '{@KBSAKU}'" /> </og:where> <og:appear startKey = "order by" value = "{@ORDER_BY}" defaultVal = "SYSTEM_ID,CLM,LANG" /> </og:query> <og:valueMap keys="SYSTEM_ID,CLM" holdTag="div" separator="_" clsClms="LANG,FGJ" > {@XX_AA0001} <br /> SYSTEM_IDとCLMの値を、separatorで連結。値は、キーの次(LABEL_NAME) {@XX_AA0001 1} <br /> 行番号の2番目(上のSQLではNAME_JA)の値 {@XX_AA0001 2} <br /> 行番号の3番目(上のSQLではLABEL_NAME)の値 {@XX_AA001* 2} <br /> キーの前方一致する行の3番目の値 {@XX_AA000!* 1} キーの前方一致する行の2番目の値を、逆順で表示 </og:valueMap> ・ キーは、select文の1番目のカラム <og:og:valueMap > ・・・フォーマット・・・ </og:valueMap> ・ キーが複数で、ユニークになる。(keys) <og:og:valueMap keys="SYSTEM_ID,CLM" > ・・・フォーマット・・・ </og:valueMap> ・ 値をdivタグで囲う。(holdTag) <og:og:valueMap keys="SYSTEM_ID,CLM" holdTag="div" > ・・・フォーマット・・・ </og:valueMap> ・ キーの連結のセパレータを指定。(separator) <og:og:valueMap keys="SYSTEM_ID,CLM" holdTag="div" separator="_" > ・・・フォーマット・・・ </og:valueMap> ・ 値をdivタグで囲う時に、クラス属性を追加します。(clsClms) <og:og:valueMap keys="SYSTEM_ID,CLM" holdTag="div" separator="_" clsClms="LANG,FGJ" > ・・・フォーマット・・・ </og:valueMap> ・ 値をdivタグで囲う時に、チップス表示(title属性)を追加します。(tipsClms) <og:og:valueMap keys="SYSTEM_ID,CLM" holdTag="div" separator="_" clsClms="LANG,FGJ" tipsClms="NAME_JA,LABEL_NAME" > ・・・フォーマット・・・ </og:valueMap>
    変更履歴:
    6.7.1.0 (2017/01/05) 新規作成
    バージョン
    6.7
    作成者
    Kazuhiko Hasegawa
    導入されたバージョン:
    JDK8.0,
    • コンストラクタの詳細

      • ValueMapTag

        public ValueMapTag()
        デフォルトコンストラクター
        変更履歴:
        6.7.1.0 (2017/01/05) 新規作成
    • メソッドの詳細

      • doStartTag

        public int doStartTag()
        Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。
        定義:
        doStartTag インタフェース内 Tag
        オーバーライド:
        doStartTag クラス内 CommonTagSupport
        戻り値:
        後続処理の指示
        変更履歴:
        6.7.1.0 (2017/01/05) 新規作成
      • doAfterBody

        public int doAfterBody()
        Taglibのタグ本体を処理する doAfterBody() を オーバーライドします。
        定義:
        doAfterBody インタフェース内 IterationTag
        オーバーライド:
        doAfterBody クラス内 CommonTagSupport
        戻り値:
        後続処理の指示(SKIP_BODY)
        変更履歴:
        6.7.1.0 (2017/01/05) 新規作成
      • doEndTag

        public int doEndTag()
        Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
        定義:
        doEndTag インタフェース内 Tag
        オーバーライド:
        doEndTag クラス内 CommonTagSupport
        戻り値:
        後続処理の指示
        変更履歴:
        6.7.1.0 (2017/01/05) 新規作成
      • release2

        protected void release2()
        タグリブオブジェクトをリリースします。 キャッシュされて再利用されるので、フィールドの初期設定を行います。
        オーバーライド:
        release2 クラス内 CommonTagSupport
        変更履歴:
        6.7.1.0 (2017/01/05) 新規作成, 6.7.2.0 (2017/01/16) valClm 追加, 6.7.3.0 (2017/01/27) tipsClms 追加, 6.7.8.0 (2017/04/21) valueMapParam関連, 6.9.2.0 (2018/03/05) reqAttUpClms 追加
      • getRequestValue

        protected java.lang.String getRequestValue​(java.lang.String key)
        リクエスト情報の文字列を取得します。 これは、CommonTagSupportの#getRequestValue( String ) を オーバーライドして、Mapから、設定値を取得します。
        オーバーライド:
        getRequestValue クラス内 CommonTagSupport
        パラメータ:
        key - キー
        戻り値:
        リクエスト情報の文字列
        関連項目:
        CommonTagSupport.getRequestValue( String )
        変更履歴:
        6.7.1.0 (2017/01/05) 新規作成, 6.7.2.0 (2017/01/16) valClm 追加, 6.7.3.0 (2017/01/27) tips 追加, 6.7.6.1 (2017/03/17) 値データを渡すようにします(isAttVal の追加対応)。, 6.7.8.0 (2017/04/21) valueMapParam関連, 6.8.0.1 (2017/06/30) str指定のキーワード, 6.9.2.0 (2018/03/05) reqAttUpClms 追加
      • getParameterRows

        protected int[] getParameterRows()
        表示データの HybsSystem.ROW_SEL_KEY を元に、選ばれた 行を処理の対象とします。
        オーバーライド:
        getParameterRows クラス内 CommonTagSupport
        戻り値:
        選択行の配列
        変更履歴:
        6.7.1.0 (2017/01/05) 新規作成
        このメソッドは、nullを返しません
      • setParam

        protected void setParam​(java.util.concurrent.ConcurrentMap<ValueMapParamTag.VMP_KEYS,​java.lang.String> pMap)
        ValueMapParamTagで設定された各種パラメータ を受け取ります。
        パラメータ:
        pMap - ValueMapParamTagで設定された各種パラメータ
        変更履歴:
        6.7.8.0 (2017/04/21) ValueMapParamTag のパラメータを追加します。
      • setSelectedAll

        public void setSelectedAll​(java.lang.String all)
        【TAG】データを全件選択済みとして処理するかどうか[true/false]を指定します(初期値:false)。
        パラメータ:
        all - 選択済み処理可否 [true:全件選択済み/false:通常]
        説明:
        全てのデータを選択済みデータとして扱って処理します。 全件処理する場合に、(true/false)を指定します。 初期値は false です。
        変更履歴:
        6.7.1.0 (2017/01/05) 新規作成
      • 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[=])。
        変更履歴:
        6.7.1.0 (2017/01/05) 新規作成
      • setKeys

        public void setKeys​(java.lang.String key1)
        【TAG】パラメータ に登録するキーをセットします。
        パラメータ:
        key1 - 登録キー
        説明:
        keysが指定されない場合は、先頭カラムを使用します。
        変更履歴:
        6.7.1.0 (2017/01/05) 新規作成
      • setValClm

        public void setValClm​(java.lang.String clm)
        【TAG】パラメータ から取り出す値カラムを指定ます。
        パラメータ:
        clm - 取り出す値カラム
        説明:
        valClmが指定されない場合は、2番目のカラムを使用します。
        変更履歴:
        6.7.2.0 (2017/01/16) 新規作成
      • setNnClms

        public void setNnClms​(java.lang.String clms)
        【TAG】パラメータが NULL の時に、設定しないカラム名を、CSV形式で指定します。
        パラメータ:
        clms - NULL の時に、設定しないカラム名を、CSV形式で指定
        説明:
        nnClms属性:この属性で指定された値が、nullの場合、{@XXXX} の解析を行いません。 正確に言うと、Mapに取り込みません。この場合、先のholdTag属性で指定したタグそのものも 出力しません。
        変更履歴:
        6.7.1.0 (2017/01/05) 新規作成, 6.7.2.0 (2017/01/16) 名称変更
      • setHoldTag

        public void setHoldTag​(java.lang.String tag)
        【TAG】値の前後を、挟むタグを指定します。
        パラメータ:
        tag - 値の前後を挟むタグ
        関連項目:
        setClsClms( String )
        説明:
        holdTag属性:{@XXXX} を、指定のタグで囲います。 例えば、holdTag="span" とすると、<span class="YYYYの値" >XXXXの値</span> という文字列を作成します。 clsClms 属性や、{@XXXX cls="B"} を使用する場合は、holdTag 属性の指定が必要です。
        変更履歴:
        6.7.1.0 (2017/01/05) 新規作成
      • setClsClms

        public void setClsClms​(java.lang.String clms)
        【TAG】holdTagを使用するとき、そのタグの属性にclass属性を出力する場合のカラム名をCSV形式で指定します。
        パラメータ:
        clms - class属性を出力する場合のカラム名を、CSV形式で指定
        関連項目:
        setHoldTag( String )
        説明:
        clsClms属性:先の指定のタグで囲う場合、そのタグのclass属性を指定できます。 複数指定した場合は、スペースで、連結します。 一括指定ではなく、個別に指定する場合は、{@XXXX cls="B"} 構文を使用します。 holdTag属性が設定されていない場合は、どちらも無視されます。
        変更履歴:
        6.7.1.0 (2017/01/05) 新規作成, 6.7.2.0 (2017/01/16) 名称変更
      • setTipsClms

        public void setTipsClms​(java.lang.String clms)
        【TAG】holdTagを使用するとき、そのタグの属性にtitle属性を出力する場合のカラム名をCSV形式で指定します。
        パラメータ:
        clms - title属性を出力する場合のカラム名を、CSV形式で指定
        関連項目:
        setHoldTag( String )
        説明:
        tipsClms属性:先の指定のタグで囲う場合、そのタグのtitle属性を指定できます。 複数指定した場合は、スペースで、連結します。 一括指定ではなく、個別に指定する場合は、{@XXXX tips="YYYY"} 構文を使用します。 holdTag属性が設定されていない場合は、どちらも無視されます。
        変更履歴:
        6.7.3.0 (2017/01/16) 名称変更
      • setReqAttUpClms

        public void setReqAttUpClms​(java.lang.String clms)
        【TAG】{@^XXXX}使用時に request.getAttribute() をセットすると同時に設定するカラム名をCSV形式で指定します。
        パラメータ:
        clms - request.getAttribute()使用時に、同時に置き換えるカラム名を、CSV形式で指定
        説明:
        DBTableModel と別に、value等で設定した値を、{@^XXXX} で置き換えますが、 その際、DBTableModel のデータも置き換えないと、表示とデータ(例えば、一覧表示やファイル出力時)が異なります。 また、置き換えるに当たって、他の項目(カラム)も置き換えないと、矛盾が生じる恐れがあります。 そこで、request.getAttribute() をセットする場合に、同時にセットするカラムを指定することで、 同時に値の書き換えを行います。 なお、値は、request.getAttribute() で取得します。
        変更履歴:
        6.9.2.0 (2018/03/05) 新規作成
      • setSeparator

        public void setSeparator​(java.lang.String sepa)
        【TAG】キーとなるカラム名の値を連結する項目区切り文字をセットします(初期値:"_")。
        パラメータ:
        sepa - 連結文字列 (初期値:"_")
        説明:
        keysで、複数のキーの値を連結して、Mapのキーにしますが、そのときの連結文字列を指定します。 初期値は、"_" に設定されています。
        変更履歴:
        6.7.1.0 (2017/01/05) 新規作成
      • setXssCheck

        public void setXssCheck​(java.lang.String flag)
        【TAG】パラメータの HTMLTag開始/終了文字(><) 存在チェックを実施するかどうか[true/false]を設定します (初期値:USE_XSS_CHECK[=])。
        パラメータ:
        flag - XSSチェック [true:する/false:しない]
        関連項目:
        SystemData.USE_XSS_CHECK
        説明:
        クロスサイトスクリプティング(XSS)対策の一環としてless/greater than signについてのチェックを行います。 (><) が含まれていたエラーにする(true)/かノーチェックか(false)を指定します。 (初期値:システム定数のUSE_XSS_CHECK[=])。
        変更履歴:
        6.7.1.0 (2017/01/05) 新規作成
      • toString

        public java.lang.String toString()
        このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。
        オーバーライド:
        toString クラス内 CommonTagSupport
        戻り値:
        このクラスの文字列表現
        変更履歴:
        6.7.1.0 (2017/01/05) 新規作成
        このメソッドは、nullを返しません