public class FileQueryTag extends QueryTag
ファイルを検索し、DBTableModel にセットするタグです。 ファイルの検索結果は、[WRITABLE],LEVEL,FILE_TYPE,PARENT,NAME,LASTMODIFIED,FILE_LENGTH,RWH,[MD5],[TO_PARENT,TO_NAME],[・・・・] のカラムを持つ DBTableModel にセット されます。このカラムは、固定です。 並び替えについては、このタグで指定しますが、ファイルの選別(where 条件)は、 BODY 部に記述する fileWhere タグで指定します。(複数指定可能)) [カラム名] 検索するファイルの属性は、以下のカラム名で作成されます。 [WRITABLE] useWritable=trueで、先頭カラムに、WRITABLE カラムが挿入されます。 LEVEL ディレクトリを展開する場合のレベル。 FILE_TYPE ファイル(F)かディレクトリ(D)であるか判定。 PARENT この抽象パス名の親のパス名文字列を返します。 NAME この抽象パス名が示すファイルまたはディレクトリの名前を返します。 LASTMODIFIED 最後に変更された時刻を返します。 FILE_LENGTH ファイルの長さを返します。 RWH 読み込み、書き込み、隠し属性をそれぞれ、r,w,h で表します。 [MD5] useMD5=trueで、MD5 というカラムを追加したうえで、ファイルのMD5計算を行います。 [TEXT] useText=trueで、ファイルの内容を文字列にして、TEXTというカラムに設定します。 [TO_PARENT] useUpdateClms=trueで、fileUpdateタグでCOPYやMOVEを行う時に使用する必須となるカラム(TO_PARENT,TO_NAME)を追加します。 [TO_NAME] 同上 [・・・・] addClms属性で指定されたカラムを追加します。
●形式:<og:fileQuery from="…" multi="true/false" > <og:fileWhere … /> … </og:fileQuery> ●body:あり(EVAL_BODY_BUFFERED:BODYを評価し、{@XXXX} を解析します) ●Tag定義: <og:fileQuery from ○【TAG】検索を開始するファイルまたはディレクトリを指定します(必須)。 multi 【TAG】多段階展開するか、1レベル展開するかどうか[true:多段階/false:1レベル]を指定します(初期値:false:1レベル)。 level 【TAG】多段階展開するレベルを指定します(初期値:100)。 orderBy 【TAG】ソートするカラム名を指定します(一つのみ)。 desc 【TAG】表示順を逆転するかどうか[true/false]を指定します(初期値:false)。 useWritable 【TAG】先頭カラムに、WRITABLE カラムを追加するかどうか[true/false]を指定します(初期値:false)。 useMD5 【TAG】MD5カラムを追加したうえで、MD5計算を行うかどうか[true/false]を指定します(初期値:false)。 useText 【TAG】TEXTカラムを追加したうえで、ファイルの内容を読み込むかどうか[true/false]を指定します(初期値:false)。 useUpdateClms 【TAG】TO_PARENT、TO_NAMEカラムを追加するかどうか[true/false]を指定します(初期値:false)。 addClms 【TAG】検索結果のカラム列に追加するカラム名を、CSV形式で指定します。 fileType 【TAG】選択対象[FILE/DIR]を指定します。下位展開は考慮(multi 属性準拠)されます。 addFrom 【TAG】from属性で指定された基準ファイル/フォルダ自体をリストに追加するかどうか[true/false]を指定します(初期値:true)。 command 【TAG】コマンド (NEW,RENEW)をセットします("NEW" と "RENEW" 時のみ実行する(初期値:NEW))。 maxRowCount 【TAG】(通常は使いません)データの最大読み込み件数を指定します (初期値:DB_MAX_ROW_COUNT[=1000])(0:[無制限])。 displayMsg 【TAG】検索結果を画面上に表示するメッセージリソースIDを指定します (初期値:VIEW_DISPLAY_MSG[=]) overflowMsg 【TAG】検索データが最大検索数をオーバーした場合に表示するメッセージリソースIDを指定します (初期値:MSG0007[検索結果が、制限行数を超えましたので、残りはカットされました])。 notfoundMsg 【TAG】検索結果がゼロ件の場合に表示するメッセージリソースIDを指定します(初期値:MSG0077[対象データはありませんでした])。 stopZero 【TAG】検索結果が0件のとき処理を続行するかどうか[true/false]を指定します(初期値:false[続行する]) tableId 【TAG】(通常は使いません)結果のDBTableModelを、sessionに登録するときのキーを指定します scope 【TAG】キャッシュする場合のスコープ[request/page/session/applicaton]を指定します(初期値:session)。 debug 【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false)。 > ... Body ... </og:fileQuery> ●使用例 ・一般的な属性でファイルの検索を行います。 <og:fileQuery from = "d:/webapps/dbdef/jsp/" multi = "true" command = "{@command}" > <og:fileWhere endWith=".jsp" /> </og:fileQuery> ・最終変更日で逆順ソートする。対象は、2002/10/01 以降に変更されたファイル。 <og:fileQuery from = "d:/webapps/dbdef/jsp/" multi = "true" orderBy = "LASTMODIFIED" desc = "true" command = "{@command}" > <og:fileWhere lastModified="20021001000000" /> </og:fileQuery>
4.0.0.0 (2005/01/31) 内部ロジック改定 |
CMD_NEW, CMD_RENEW, command, displayMsg, dyStart, ERR_MSG_ID, errCode, errMessage, executeCount, maxRowCount, names, outMessage, quotCheck, skipRowCount, sql, stopError, table, tableId, useTimeView, xssCheck
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
コンストラクタと説明 |
---|
FileQueryTag()
デフォルトコンストラクター
|
修飾子とタイプ | メソッドと説明 |
---|---|
int |
doAfterBody()
Taglibのタグ本体を処理する doAfterBody() を オーバーライドします。
|
protected void |
execute(File fin,
int lvl)
FileQuery を実行します。
|
protected void |
release2()
タグリブオブジェクトをリリースします。
|
void |
setAddClms(String clms)
【TAG】検索結果のカラム列に追加するカラム名を、CSV形式で指定します。
|
void |
setAddFrom(String flag)
【TAG】from属性で指定された基準ファイル/フォルダ自体をリストに追加するかどうか[true/false]を指定します(初期値:true)。
|
void |
setDesc(String flag)
【TAG】表示順を逆転するかどうか[true/false]を指定します(初期値:false)。
|
protected void |
setFileFilter(FileFilter filter)
FileFilterオブジェクトをセットします。
|
void |
setFileType(String str)
【TAG】ファイル名が、指定されたファイルタイプ[DIR/FILE]と一致した場合、スルー(選択)されます(初期値:null)。
|
void |
setFrom(String url)
【TAG】ファイルの検索元となるディレクトリを指定します
(初期値:FILE_URL[=filetemp/])。
|
void |
setLevel(String lvl)
【TAG】多段階展開するレベルを指定します(初期値:100)。
|
void |
setMulti(String mlti)
【TAG】多段階展開するか、1レベル展開するかどうか[true/false]を指定します(初期値:false)。
|
void |
setOrderBy(String clm)
【TAG】ソートするカラム名を指定します(一つのみ)。
|
void |
setUseMD5(String flag)
【TAG】MD5カラムを追加したうえで、MD5計算を行うかどうか[true/false]を指定します(初期値:false)。
|
void |
setUseText(String flag)
【TAG】TEXTカラムを追加したうえで、ファイルの内容を読み込むかどうか[true/false]を指定します(初期値:false)。
|
void |
setUseUpdateClms(String flag)
【TAG】TO_PARENT、TO_NAMEカラムを追加するかどうか[true/false]を指定します(初期値:false)。
|
void |
setUseWritable(String flag)
【TAG】先頭カラムに、WRITABLE カラムを追加するかどうか[true/false]を指定します(初期値:false)。
|
String |
toString()
このオブジェクトの文字列表現を返します。
|
doEndTag, doStartTag, execute, getRequest, setCheckNames, setCommand, setDbid, setDisplayMsg, setMainTrans, setMaxRowCount, setModifyType, setNames, setNotfoundMsg, setOutMessage, setOverflowMsg, setQueryType, setQuotCheck, setSkipRowCount, setStopError, setStopZero, setTableId, setTrace, setUseBeforeHtmlTag, setUseTimeView, setXssCheck
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, getParameterRows, 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
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 FileQueryTag()
6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor. |
public int doAfterBody()
doAfterBody
インタフェース内 IterationTag
doAfterBody
クラス内 QueryTag
5.3.4.0 (2011/04/01) 指定カラムのソート処理機能追加 |
5.3.5.0 (2011/05/01) 最初のファイルが存在する場合のみ、実行する。 |
protected void release2()
protected void execute(File fin, int lvl)
fin
- 検索を開始するファイル/ディレクトリlvl
- 階層展開レベル5.3.4.0 (2011/04/01) fileType の条件に合致する場合だけ、データを作成する。 |
5.3.7.0 (2011/07/01) フォルダにアクセスできない場合は、null となるのでその対応 |
5.3.9.0 (2011/09/01) addFrom属性追加 |
public void setFrom(String url)
url
- ファイルの検索元となるディレクトリファイルの検索元となるディレクトリを指定します。
4.0.0.0 (2007/11/20) 指定されたディレクトリ名の最後が"\"or"/"で終わっていない場合に、"/"を付加する。 |
6.4.2.1 (2016/02/05) URLの最後に、"/" を追加する処理を廃止。 |
6.4.2.1 (2016/02/05) HybsSystem.url2dir に引数追加。 |
public void setMulti(String mlti)
mlti
- 多段階展開するか [true:する/false:1レベル]初期値は、false (1レベル) です。
public void setLevel(String lvl)
lvl
- 多段階展開するレベルpublic void setOrderBy(String clm)
clm
- ソートするカラム名 (一つのみ、逆順はマイナスを付ける)setDesc( String )
ソートするカラム名を、"LEVEL","FILE_TYPE","PARENT","NAME","LASTMODIFIED","FILE_LENGTH","RWH" から一つ選びます。 これは、複数カラムでのソートはできません。 逆順にソートする場合は、desc属性を true にセットください。 + をつけても、無効(カラム名がないということ)でエラーになります。
5.3.4.0 (2011/04/01) 新規追加 |
6.3.4.0 (2015/08/01) Arrays.toString から String.join に置き換え。 |
6.4.3.4 (2016/03/11) String配列 から、Setに置き換えます。 |
public void setDesc(String flag)
flag
- 表示順逆順 [逆順:true/正順:false]setOrderBy( String )
orderBy 属性で指定した表示順を、逆順にするかどうかを指定できます。 初期値は、false (昇順) です。
5.3.4.0 (2011/04/01) 新規追加 |
public void setUseWritable(String flag)
flag
- WRITABLEカラム追加 [true:する/false:しない]ファイル検索結果の1レコード単位に、書き込み許可/禁止属性を付けるには、 カラム列の先頭に、WRITABLE カラムを追加する必要があります。 初期値は、false (追加しない) です。
5.7.4.3 (2014/03/28) 新規追加 |
public void setUseMD5(String flag)
flag
- MD5カラム追加 [true:する/false:しない]ファイルの改変等をチェックするには、ファイルのハッシュ値を拾う必要があります。 タイムスタンプとサイズ(LASTMODIFIED,FILE_LENGTH)でも、類似の処理は可能ですが、 より、厳密な一致をみるなら、MD5でハッシュした結果を突き合わせるのがベストです。 useMD5=true に設定すると、MD5 というカラムを追加したうえで、MD5計算結果をセットします。 初期値は、false (追加しない) です。
5.7.4.3 (2014/03/28) 新規追加 |
public void setUseText(String flag)
flag
- TEXTカラム追加 [true:する/false:しない]ファイルの内容を取得する場合に、true に設定します。 初期値は、false (追加しない) です。
6.2.2.0 (2015/03/27) TEXTカラムを追加したうえで、ファイルの内容を読み込むかどうか[true/false]を指定します(初期値:false)。 |
public void setUseUpdateClms(String flag)
flag
- TO_PARENT、TO_NAMEカラム追加 [true:追加する/false:追加しない]setAddClms( String )
,
FileUpdateTag
fileUpdateタグでは、ファイルのCOPYやMOVEが出来ますが、そのコピー先、移動先の ファイルを行ごとに指定する場合、TO_PARENT、TO_NAMEカラムという固定名のカラムが 必要です。 これを、addClms 属性で指定する代わりに、この属性で、true をセットすることで、 自動的に追加されます。 初期値は、false (追加しない) です。
5.3.4.0 (2011/04/01) 新規追加 |
public void setAddClms(String clms)
clms
- 追加するカラム名(CSV形式)setUseUpdateClms( String )
デフォルトのカラム名、[WRITABLE],LEVEL,FILE_TYPE,PARENT,NAME,LASTMODIFIED,FILE_LENGTH,RWH,[MD5],[TO_PARENT,TO_NAME] 以外に、指定のカラム名を追加することが可能です。 これは、ファイル検索結果以外の項目を追加して、データベースに書き込む場合に、利用できます。 並び順は、デフォルトカラムの後ろに、指定のカラムの順番で付きます。 ここで追加したカラムには、カラムリソースの初期値がセットされます。
5.3.4.0 (2011/04/01) 新規追加 |
public void setFileType(String str)
str
- ファイルタイプ [null:スルー/DIR:ディレクトリのみ検索/FILE:ファイルのみ検索]大文字小文字は区別しません。 ファイルタイプ は、DIR,FILE が指定できます。 DIR は、ディレクトリのみ検索します。(階層下がりも行います) FILEは、ファイルのみ検索します。(階層下がりも行います) 引数が null の場合は、追加しません。(つまり、すべてスルーされます。)
5.3.4.0 (2011/04/01) fileType メソッドで選択対象指定の追加 |
public void setAddFrom(String flag)
flag
- 基準をリストに追加するかどうか [true:追加する/false:追加しない]初期値はtrue(追加する)です。
5.3.9.0 (2011/09/01) 新規作成 |
protected void setFileFilter(FileFilter filter)
filter
- オブジェクトWebアプリケーションフレームワーク openGionCopyright (c) 2009 The openGion Project.