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>
BR, BUFFER_MIDDLE, CR
bodyContent
id, pageContext
EVAL_BODY_BUFFERED, EVAL_BODY_TAG
EVAL_BODY_AGAIN
EVAL_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 |
setReqAttUpClms(java.lang.String clms)
【TAG】{@^XXXX}使用時に request.getAttribute() をセットすると同時に設定するカラム名をCSV形式で指定します。
|
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, 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, useXssCheck
doInitBody, getBodyContent, getPreviousOut, release, setBodyContent
findAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setPageContext, setParent, setValue
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getParent, setPageContext, setParent
public int doStartTag()
doStartTag
インタフェース内 Tag
doStartTag
クラス内 CommonTagSupport
public int doAfterBody()
doAfterBody
インタフェース内 IterationTag
doAfterBody
クラス内 CommonTagSupport
public int doEndTag()
doEndTag
インタフェース内 Tag
doEndTag
クラス内 CommonTagSupport
protected void release2()
release2
クラス内 CommonTagSupport
protected java.lang.String getRequestValue(java.lang.String key)
getRequestValue
クラス内 CommonTagSupport
key
- キーCommonTagSupport.getRequestValue( String )
protected int[] getParameterRows()
getParameterRows
クラス内 CommonTagSupport
protected void setParam(java.util.concurrent.ConcurrentMap pMap)
pMap
- ValueMapParamTagで設定された各種パラメータpublic void setSelectedAll(java.lang.String all)
all
- 選択済み処理可否 [true:全件選択済み/false:通常]public void setTableId(java.lang.String id)
id
- テーブルID (sessionに登録する時のID)public void setKeys(java.lang.String key1)
key1
- 登録キーpublic void setValClm(java.lang.String clm)
clm
- 取り出す値カラムpublic void setNnClms(java.lang.String clms)
clms
- NULL の時に、設定しないカラム名を、CSV形式で指定public void setHoldTag(java.lang.String tag)
tag
- 値の前後を挟むタグsetClsClms( String )
public void setClsClms(java.lang.String clms)
clms
- class属性を出力する場合のカラム名を、CSV形式で指定setHoldTag( String )
public void setTipsClms(java.lang.String clms)
clms
- title属性を出力する場合のカラム名を、CSV形式で指定setHoldTag( String )
public void setReqAttUpClms(java.lang.String clms)
clms
- request.getAttribute()使用時に、同時に置き換えるカラム名を、CSV形式で指定public void setSeparator(java.lang.String sepa)
sepa
- 連結文字列 (初期値:"_")public void setXssCheck(java.lang.String flag)
flag
- XSSチェック [true:する/false:しない]SystemData.USE_XSS_CHECK
public java.lang.String toString()
toString
クラス内 CommonTagSupport
Webアプリケーションフレームワーク openGionCopyright (c) 2009 The openGion Project.