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 も使用せず、設定値のみ出力します。
・{@*XXXX!*} とすると、キーのあいまい指定の残り部分の文字列を出力します。連番の場合の番号を取り出せます。
この場合は、固定値になるため、holsTagも、clsClms も使用しません。
・{@^XXXX} とすると、request.getAttribute()の値を優先して使用します。{@^XXXX*}などのあいまい指定も可能です。
この場合、オリジナルのキーは、DBTableModel上に必要です。値の入れ替えのみ、行う感じです。
※ このタグは、Transaction タグの対象です。 ●形式:<og:valueMap />
●body:あり(EVAL_BODY_BUFFERED:BODYを評価し、{@XXXX} を特殊な方法で解析します)
●Tag定義:
<og:valueMap
keys 【TAG】パラメータから取り出すキーとなるカラム名を、CSV形式で指定します(初期値:最初のカラム)
valClm 【TAG】パラメータから取り出す値のカラム名を指定します(初期値:2番目のカラム)
selectedAll 【TAG】データを全件選択済みとして処理するかどうか[true/false]を指定します(初期値:true)
holdTag 【TAG】値の前後を、指定のタグで挟みます
clsClms 【TAG】holdTagを使用するとき、そのタグの属性にclass属性を出力する場合のカラム名をCSV形式で指定します
tipsClms 【TAG】holdTagを使用するとき、そのタグの属性にtitle属性を出力する場合のカラム名をCSV形式で指定します
nnClms 【TAG】パラメータが NULL の時に、設定しないカラム名を、CSV形式で指定します
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) 新規作成 |
BR, BUFFER_MIDDLE, CRbodyContentid, pageContextEVAL_BODY_BUFFERED, EVAL_BODY_TAGEVAL_BODY_AGAINEVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE| コンストラクタと説明 |
|---|
ValueMapTag()
デフォルトコンストラクター
|
| 修飾子とタイプ | メソッドと説明 |
|---|---|
int |
doAfterBody()
Taglibのタグ本体を処理する doAfterBody() を オーバーライドします。
|
int |
doEndTag()
Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
|
int |
doStartTag()
Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。
|
protected int[] |
getParameterRows()
表示データの HybsSystem.ROW_SEL_KEY を元に、選ばれた 行を処理の対象とします。
|
protected java.lang.String |
getRequestValue(java.lang.String key)
リクエスト情報の文字列を取得します。
|
protected void |
release2()
タグリブオブジェクトをリリースします。
|
void |
setClsClms(java.lang.String clms)
【TAG】holdTagを使用するとき、そのタグの属性にclass属性を出力する場合のカラム名をCSV形式で指定します。
|
void |
setHoldTag(java.lang.String tag)
【TAG】値の前後を、挟むタグを指定します。
|
void |
setKeys(java.lang.String key1)
【TAG】パラメータ に登録するキーをセットします。
|
void |
setNnClms(java.lang.String clms)
【TAG】パラメータが NULL の時に、設定しないカラム名を、CSV形式で指定します。
|
protected void |
setParam(java.util.concurrent.ConcurrentMap pMap)
ValueMapParamTagで設定された各種パラメータ を受け取ります。
|
void |
setSelectedAll(java.lang.String all)
【TAG】データを全件選択済みとして処理するかどうか[true/false]を指定します(初期値:false)。
|
void |
setSeparator(java.lang.String sepa)
【TAG】キーとなるカラム名の値を連結する項目区切り文字をセットします(初期値:"_")。
|
void |
setTableId(java.lang.String id)
【TAG】(通常は使いません)結果のDBTableModelを、sessionに登録するときのキーを指定します
(初期値:HybsSystem#TBL_MDL_KEY[=h_tblmdl])。
|
void |
setTipsClms(java.lang.String clms)
【TAG】holdTagを使用するとき、そのタグの属性にtitle属性を出力する場合のカラム名をCSV形式で指定します。
|
void |
setValClm(java.lang.String clm)
【TAG】パラメータ から取り出す値カラムを指定ます。
|
void |
setXssCheck(java.lang.String flag)
【TAG】パラメータの HTMLTag開始/終了文字(><) 存在チェックを実施するかどうか[true/false]を設定します
(初期値:USE_XSS_CHECK[=true])。
|
java.lang.String |
toString()
このオブジェクトの文字列表現を返します。
|
add, add, addEventColumn, addEventColumn, check, commitTableObject, debugPrint, doCatch, doFinally, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getCommonTagThrowable, 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, 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, useXssCheckdoInitBody, getBodyContent, getPreviousOut, release, setBodyContentfindAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setPageContext, setParent, setValueclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetParent, setPageContext, setParentpublic int doStartTag()
doStartTag インタフェース内 TagdoStartTag クラス内 CommonTagSupport| 6.7.1.0 (2017/01/05) 新規作成 |
public int doAfterBody()
doAfterBody インタフェース内 IterationTagdoAfterBody クラス内 CommonTagSupport| 6.7.1.0 (2017/01/05) 新規作成 |
public int doEndTag()
doEndTag インタフェース内 TagdoEndTag クラス内 CommonTagSupport| 6.7.1.0 (2017/01/05) 新規作成 |
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関連 |
protected java.lang.String getRequestValue(java.lang.String key)
getRequestValue クラス内 CommonTagSupportkey - キー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指定のキーワード |
protected int[] getParameterRows()
getParameterRows クラス内 CommonTagSupport| 6.7.1.0 (2017/01/05) 新規作成 |
protected void setParam(java.util.concurrent.ConcurrentMap pMap)
pMap - ValueMapParamTagで設定された各種パラメータ| 6.7.8.0 (2017/04/21) ValueMapParamTag のパラメータを追加します。 |
public void setSelectedAll(java.lang.String all)
all - 選択済み処理可否 [true:全件選択済み/false:通常]全てのデータを選択済みデータとして扱って処理します。 全件処理する場合に、(true/false)を指定します。 初期値は false です。
| 6.7.1.0 (2017/01/05) 新規作成 |
public void setTableId(java.lang.String id)
id - テーブルID (sessionに登録する時のID)検索結果より、DBTableModelオブジェクトを作成します。これを、下流のviewタグ等に 渡す場合に、通常は、session を利用します。その場合の登録キーです。 query タグを同時に実行して、結果を求める場合、同一メモリに配置される為、 この tableId 属性を利用して、メモリ空間を分けます。 (初期値:HybsSystem#TBL_MDL_KEY[=h_tblmdl])。
| 6.7.1.0 (2017/01/05) 新規作成 |
public void setKeys(java.lang.String key1)
key1 - 登録キーkeysが指定されない場合は、先頭カラムを使用します。
| 6.7.1.0 (2017/01/05) 新規作成 |
public void setValClm(java.lang.String clm)
clm - 取り出す値カラムvalClmが指定されない場合は、2番目のカラムを使用します。
| 6.7.2.0 (2017/01/16) 新規作成 |
public void setNnClms(java.lang.String clms)
clms - NULL の時に、設定しないカラム名を、CSV形式で指定 nnClms属性:この属性で指定された値が、nullの場合、{@XXXX} の解析を行いません。
正確に言うと、Mapに取り込みません。この場合、先のholdTag属性で指定したタグそのものも
出力しません。| 6.7.1.0 (2017/01/05) 新規作成 |
| 6.7.2.0 (2017/01/16) 名称変更 |
public void setHoldTag(java.lang.String 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) 新規作成 |
public void setClsClms(java.lang.String clms)
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) 名称変更 |
public void setTipsClms(java.lang.String clms)
clms - title属性を出力する場合のカラム名を、CSV形式で指定setHoldTag( String ) tipsClms属性:先の指定のタグで囲う場合、そのタグのtitle属性を指定できます。
複数指定した場合は、スペースで、連結します。
一括指定ではなく、個別に指定する場合は、{@XXXX tips="YYYY"} 構文を使用します。
holdTag属性が設定されていない場合は、どちらも無視されます。| 6.7.3.0 (2017/01/16) 名称変更 |
public void setSeparator(java.lang.String sepa)
sepa - 連結文字列 (初期値:"_")keysで、複数のキーの値を連結して、Mapのキーにしますが、そのときの連結文字列を指定します。 初期値は、"_" に設定されています。
| 6.7.1.0 (2017/01/05) 新規作成 |
public void setXssCheck(java.lang.String flag)
flag - XSSチェック [true:する/false:しない]SystemData.USE_XSS_CHECKクロスサイトスクリプティング(XSS)対策の一環としてless/greater than signについてのチェックを行います。 (><) が含まれていたエラーにする(true)/かノーチェックか(false)を指定します。 (初期値:システム定数のUSE_XSS_CHECK[=true])。
| 6.7.1.0 (2017/01/05) 新規作成 |
public java.lang.String toString()
toString クラス内 CommonTagSupport| 6.7.1.0 (2017/01/05) 新規作成 |
Webアプリケーションフレームワーク openGionCopyright (c) 2009 The openGion Project.