org.opengion.hayabusa.taglib
クラス FileUploadTag
java.lang.Object
javax.servlet.jsp.tagext.TagSupport
javax.servlet.jsp.tagext.BodyTagSupport
org.opengion.hayabusa.taglib.CommonTagSupport
org.opengion.hayabusa.taglib.FileUploadTag
- すべての実装されたインタフェース:
- java.io.Serializable, javax.servlet.jsp.tagext.BodyTag, javax.servlet.jsp.tagext.IterationTag, javax.servlet.jsp.tagext.JspTag, javax.servlet.jsp.tagext.Tag, javax.servlet.jsp.tagext.TryCatchFinally
public class FileUploadTag
- extends CommonTagSupport
クライアントのファイルをサーバーにアップロードするタグです。
アップロード後の属性は、DBTableModel に格納することにより、通常のデータと
同様の取り出し方が可能です。
また、通常のファイルアップロード時の、form で使用する、enctype="multipart/form-data"
を指定した場合の、他のリクエスト情報も、{@XXXX} 変数で取り出すことが可能です。
この upload タグでは、アップロード後に、指定のファイル名に変更する機能があります。
file 登録ダイアログで指定した name に、"_NEW" という名称を付けたリクエスト値を
ファイルのアップロードと同時に送信することで、この名前にファイルを付け替えます。
また、アップロード後のファイル名は、name 指定の名称で、取り出せます。
クライアントから登録したオリジナルのファイル名は、name に、"_ORG" という名称
で取り出すことが可能です。
通常では、これらのパラメータを、RequestAttribute 変数にセットしますので、{@XXXX}で
取り出すことが可能になります。さらに、"KEY","VALUE","ISFILE" のカラムを持った、
DBTableModel にセットします。
新機能として、columns を指定する事で、columns のカラムを持つ DBTableModel にセットします。
その場合は、カラム名_01 ~ カラム名_99 のように、アンダーバーで列データとなるキーを定義してください。
アンダーバーがない場合は、カラムだけ作成されます。カラム名と同じリクエストがあれば、
すべてのレコードに同じ値がセットされます。
新ファイル名に拡張子が設定されていない場合は、オリジナルファイル名の拡張子をセットします。
- 関連項目:
- 直列化された形式
- 形式サンプル:
●形式:<og:upload fileURL="…" maxPostSize="…" />
●body:なし
●Tag定義:
<og:upload
fileURL 【TAG】ファイルをアップロードするディレクトリを指定します (初期値:FILE_URL[=filetemp/])
filename 【TAG】(通常使いません)ファイルを作成するときのファイル名をセットします
maxPostSize 【TAG】最大転送サイズ(Byte)を指定します(初期値:10485760) 0,またはマイナスで無制限です。
scope 【TAG】キャッシュする場合のスコープ[request/page/session/applicaton]を指定します(初期値:session)
tableId 【TAG】(通常使いません)sessionから所得する DBTableModelオブジェクトの ID
columns 【TAG】DBTableModel作成時に、指定のカラムの"_01"~"_99"の添え字をレコードとして作成します。
useBackup 【TAG】ファイルアップロード時に、すでに同名のファイルが存在した場合に、バックアップ処理(renameTo)するかどうか[true/false]を指定します(初期値:false)
language 【TAG】タグ内部で使用する言語コード[ja/en/zh/…]を指定します
debug 【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false)
/>
●使用例 :
【query.jsp】
<form method="POST" action="result.jsp" enctype="multipart/form-data" target="RESULT">
<table summary="layout" >
<tr><og:input type="text" name="submitter" value="{@USER.JNAME}" size="20" msg="MSG0014" /></tr>
<tr>
<og:input type="file" name="file_01" size="30" msg="MSG0015" />
<og:input name="file_01_NEW" size="10" lbl="FILENAME" />
</tr><tr>
<og:input type="file" name="file_02" size="30" msg="MSG0015" />
<og:input name="file_02_NEW" size="10" lbl="FILENAME" />
</tr><tr>
<og:input type="file" name="file_03" size="30" msg="MSG0015" />
<og:input name="file_03_NEW" size="10" lbl="FILENAME" />
</tr><tr>
<og:column name="writable" value="false" />
</tr>
</table>
【result.jsp】
<og:upload
fileURL = "{@USER.ID}"
/>
<br />
<og:message msg="MSG0003" comment="ファイルの登録が完了しました。" />
<og:view
command = "NEW"
viewFormType = "HTMLTable"
writable = "{@writable}"
/>
<table>
<tr><og:input name="submitter" value="{@submitter}" /></tr>
<tr><og:input name="writable" value="{@writable}" /></tr>
<tr><og:input name="directory" value="{@directory}" /></tr>
<tr><og:input name="file_01" value="{@file_01}" /></tr>
<tr><og:input name="file_01_NEW" value="{@file_01_NEW}" /></tr>
<tr><og:input name="file_01_ORG" value="{@file_01_ORG}" /></tr>
<tr><og:input name="file_02" value="{@file_02}" /></tr>
<tr><og:input name="file_02_NEW" value="{@file_02_NEW}" /></tr>
<tr><og:input name="file_02_ORG" value="{@file_02_ORG}" /></tr>
<tr><og:input name="file_03" value="{@file_03}" /></tr>
<tr><og:input name="file_03_NEW" value="{@file_03_NEW}" /></tr>
<tr><og:input name="file_03_ORG" value="{@file_03_ORG}" /></tr>
</table>
【result.jsp】
<og:upload
fileURL = "{@USER.ID}"
columns = "submitter,file"
/>
<br />
<og:message msg="MSG0003" comment="ファイルの登録が完了しました。" />
<og:view
command = "NEW"
viewFormType = "HTMLTable"
writable = "{@writable}"
/>
- 機能分類
- ファイル入力
- バージョン
- 4.0
- 作成者
- Kazuhiko Hasegawa
- 導入されたバージョン:
- JDK5.0,
クラス 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 |
メソッドの概要 |
int |
doEndTag()
Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。 |
protected java.lang.String |
getTagName()
タグの名称を、返します。 |
protected void |
release2()
タグリブオブジェクトをリリースします。 |
void |
setColumns(java.lang.String clms)
【TAG】DBTableModel作成時に、指定のカラムの"_01"~"_99"の添え字をレコードとして作成します。 |
void |
setFilename(java.lang.String filename)
【TAG】(通常使いません)ファイルを作成するときのファイル名をセットします。 |
void |
setFileURL(java.lang.String url)
【TAG】ファイルをアップロードするディレクトリを指定します
(初期値:FILE_URL[=filetemp/])。 |
void |
setMaxPostSize(java.lang.String maxPS)
【TAG】最大転送サイズ(Byte)を指定します(初期値:10485760)。 |
void |
setTableId(java.lang.String id)
【TAG】(通常使いません)sessionから所得する DBTableModelオブジェクトの ID。 |
void |
setUseBackup(java.lang.String flag)
【TAG】ファイルアップロード時に、すでに同名のファイルが存在した場合に、バックアップ処理(renameTo)するかどうか[true/false]を指定します(初期値:false)。 |
java.lang.String |
toString()
このオブジェクトの文字列表現を返します。 |
クラス org.opengion.hayabusa.taglib.CommonTagSupport から継承されたメソッド |
add, add, addEventColumn, addEventColumn, check, check, commitTableObject, debugPrint, doAfterBody, doCatch, doFinally, doStartTag, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getContextAttribute, getContextPath, getCookie, getCSVParameter, getDataCondition, getDateFormat, getDBColumn, getDBFunctionName, getDocumentLink, getGUIInfo, getGUIInfoAttri, getHostName, getLabel, getLabelInterface, getLanguage, getLongLabel, getMsglbl, getNVLAttri, getObject, getParameterNames, getParameterRows, getRequest, getRequestAttribute, getRequestCacheData, getRequestParameter, getRequestParameterValues, getRequestValue, getRequestValue, getRequestValues, getReservedParameter, getReservedValue, getResource, getSanitizedBodyString, getScope, getSessionAttribute, getUser, getUserInfo, isAjaxSubmitRequest, isDebug, isNoTransitionRequest, isNull, jspPrint, removeContextAttribute, removeObject, removeRequestAttribute, removeSessionAttribute, set, setAjaxSubmitRequest, setCaseKey, setCaseNN, 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 |
FileUploadTag
public FileUploadTag()
doEndTag
public int doEndTag()
- Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
- 定義:
- インタフェース
javax.servlet.jsp.tagext.Tag
内の doEndTag
- オーバーライド:
- クラス
CommonTagSupport
内の doEndTag
- 戻り値:
- 後続処理の指示
- 変更履歴:
2.2.0.0 (2002/12/17) 中国語(国際化)対応 エンコードの取得方法変更 |
3.1.1.2 (2003/04/04) Tomcat4.1 対応。release2() を doEndTag()で呼ぶ。 |
3.1.3.0 (2003/04/10) UTF-8 決め打ちのエンコード情報を取得する。 |
3.5.2.0 (2003/10/20) scope 属性を追加。 |
3.5.4.2 (2003/12/15) ファイル名を指定できるようにします。 |
3.6.0.8 (2004/11/19) DBTableModel をセーブする時に、トランザクションチェックを行います。 |
3.7.1.1 (2005/05/23) フォルダがない場合は、複数階層分のフォルダを自動で作成します。 |
3.8.1.3A (2006/01/30) 新ファイル名にオリジナルファイル名の拡張子をセットします |
5.3.7.0 (2011/07/01) エラーメッセージ内容変更 |
5.6.5.2 (2013/06/21) columns 属性の追加 |
5.6.5.3 (2013/06/28) useBackup 属性の追加 |
release2
protected void release2()
- タグリブオブジェクトをリリースします。
キャッシュされて再利用されるので、フィールドの初期設定を行います。
- オーバーライド:
- クラス
CommonTagSupport
内の release2
- 変更履歴:
2.0.0.4 (2002/09/27) カスタムタグの release() メソッドを、追加 |
3.0.1.1 (2003/03/06) columns を廃止 |
3.1.1.2 (2003/04/04) Tomcat4.1 対応。release2() を doEndTag()で呼ぶ。 |
3.5.4.2 (2003/12/15) ファイル名を指定できるようにします。 |
5.6.5.2 (2013/06/21) columns 属性の追加 |
5.6.5.2 (2013/06/21) useBackup 属性の追加 |
setFileURL
public void setFileURL(java.lang.String url)
- 【TAG】ファイルをアップロードするディレクトリを指定します
(初期値:FILE_URL[=filetemp/])。
- パラメータ:
url
- ファイルURL- 関連項目:
SystemData.FILE_URL
- 説明:
この属性で指定されるディレクトリに、アップロードされたファイルをセーブします。
指定方法は、通常の fileURL 属性と同様に、先頭が、'/' (UNIX) または、2文字目が、
":" (Windows)の場合は、指定のURLそのままのディレクトリに、そうでない場合は、
fileURL = "{@USER.ID}" と指定すると、FILE_URL 属性で指定のフォルダの下に、
さらに、各個人ID別のフォルダを作成して、そこにセーブします。
(初期値:システム定数のFILE_URL[={@og.value org.opengion.hayabusa.common.SystemData#FILE_URL}])。
- 変更履歴:
4.0.0.0 (2005/01/31) StringUtil.urlAppend メソッドの利用 |
4.0.0.0 (2007/11/20) 指定されたディレクトリ名の最後が"\"or"/"で終わっていない場合に、"/"を付加する。 |
setMaxPostSize
public void setMaxPostSize(java.lang.String maxPS)
- 【TAG】最大転送サイズ(Byte)を指定します(初期値:10485760)。
- パラメータ:
maxPS
- 最大転送サイズ- 説明:
最大転送サイズを指定します。初期値は、10*1024*1024 = 10MB です。
指定は、Byte 単位で指定します。
0,またはマイナスを指定することで、制限チェックを外す(=無制限)事ができます。
- 変更履歴:
3.0.1.1 (2003/03/06) maxPostSize の設定バグ修正。 |
5.6.5.3 (2013/06/28) コメント追加(0,またはマイナスで無制限) |
setTableId
public void setTableId(java.lang.String id)
- 【TAG】(通常使いません)sessionから所得する DBTableModelオブジェクトの ID。
- パラメータ:
id
- sessionに登録する時の ID- 説明:
初期値は、HybsSystem.TBL_MDL_KEY です。
- 変更履歴:
3.5.2.0 (2003/10/20) nvalメソッドを適用するように変更。 |
setFilename
public void setFilename(java.lang.String filename)
- 【TAG】(通常使いません)ファイルを作成するときのファイル名をセットします。
- パラメータ:
filename
- ファイル名- 説明:
ファイルを作成するときのファイル名をセットします。
これは、複数同時にアップロードファイル名を変更する時に使用できません。
通常、アップロードされたファイル名を指定する場合、アップロードするinput タグの
name 属性に指定する名称 + "_NEW" というリクエスト値を同時に送信すれば、
内部的に関連付けて、ファイル名を更新します。
その場合、クライアントより指定したファイル名は、name属性+"_ORG" という
リクエスト値として取得することが可能になります。
name属性 には、最終的に設定されたファイル名がセットされています。
いずれの値も、{@name属性+"_ORG"} や、{@name属性+"_NEW"}として、
アップロードのオリジナルと変更後のファイル名を取得することが出来ます。
- 変更履歴:
3.5.4.2 (2003/12/15) ファイル名を指定できるようにします。 |
setColumns
public void setColumns(java.lang.String clms)
- 【TAG】DBTableModel作成時に、指定のカラムの"_01"~"_99"の添え字をレコードとして作成します。
- パラメータ:
clms
- DBTableModel作成時のカラム列(カンマ区切り文字)- 説明:
現状は、"KEY","VALUE","ISFILE" のカラムに、データを縦持ちで作成しています。
これを、横持で作成しますが、カラムの末尾に、"_01"~"_99" までの添え字を
持つ場合は、これをレコードと認識させます。
アンダーバーがない場合は、カラムだけ作成されます。カラム名と同じリクエストがあれば、
すべてのレコードに同じ値がセットされます。
この処理は、columns 属性を設定した場合のみとします。
- 変更履歴:
5.6.5.2 (2013/06/21) 新規作成 |
setUseBackup
public void setUseBackup(java.lang.String flag)
- 【TAG】ファイルアップロード時に、すでに同名のファイルが存在した場合に、バックアップ処理(renameTo)するかどうか[true/false]を指定します(初期値:false)。
- パラメータ:
flag
- ファイルアップロード時に、バックアップ処理(renameTo)するかどうか[true/false]を指定- 説明:
ファイルアップロード時に、アップロード先に、同名のファイルが存在した場合は、既存機能は、そのまま
置き換えていましたが、簡易バージョンアップ機能として、useBackup="true" を指定すると、既存のファイルを
リネームして、バックアップファイルを作成します。
バックアップファイルは、アップロードフォルダを基準として、_backup/ファイル名.拡張子_処理時刻のlong値.拡張子 になります。
オリジナルのファイル名(拡張子付)を残したまま、"_処理時刻のlong値" を追加し、さらに、オリジナルの拡張子を追加します。
バックアップファイルの形式は指定できません。
初期値は、互換性を持たせるため、false です。
- 変更履歴:
5.6.5.3 (2013/06/28) 新規作成 |
getTagName
protected java.lang.String getTagName()
- タグの名称を、返します。
自分自身のクラス名より、自動的に取り出せないため、このメソッドをオーバーライドします。
- オーバーライド:
- クラス
CommonTagSupport
内の getTagName
- 戻り値:
- タグの名称
- 関連項目:
CommonTagSupport.getDocumentLink()
- 変更履歴:
4.0.0.0 (2005/01/31) 新規追加 |
toString
public java.lang.String toString()
- このオブジェクトの文字列表現を返します。
基本的にデバッグ目的に使用します。
- オーバーライド:
- クラス
CommonTagSupport
内の toString
- 戻り値:
- このクラスの文字列表現
Webアプリケーションフレームワーク openGion
Copyright (c) 2009 The openGion Project.