org.opengion.hayabusa.taglib

## クラス FileUDTag

- java.lang.Object
- - javax.servlet.jsp.tagext.TagSupport
  - - javax.servlet.jsp.tagext.BodyTagSupport
    - - org.opengion.hayabusa.taglib.CommonTagSupport
      - - org.opengion.hayabusa.taglib.FileUDTag

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

      public class FileUDTag
      extends CommonTagSupport

  ファイルアップロード/ダウンロードリンクを作成するタグです(通常は result_info.jsp に組込み)。 画面検索した結果を、ダウンロードしたり、アップロードする機能は、画面リソースの ロール制御で管理しています。 ただし、デフォルトで、以下の制限が掛かっています。 ファイルダウンロード ・command="NEW|RENEW|FIRST|LAST|PREV|NEXT|VIEW|RESET" のみ ファイルアップロード ・command="COPY|INSERT" のみ 5.7.8.1 (2014/07/18) addDownCmnd と、addUpldCmnd を指定すれば、ダウンロード、アップロードできる command を増やすことが可能です。 また、typeDownload="true" にするとDownload 処理を行う為の前処理を実施します。 Download 処理を行うには、指定の画面(呼び出し元)と、抜き出した時の DBTableModel がマッチしているか判定します。 また、DBTableModel が存在しない、または、不備な場合(オーバーフロー)は、 最終SQLを実行する必要があり、そもそも、抜出処理が出来ない状態では、 エラーを返す必要があります。 それら、一連のDownload 処理を行うかどうかを指定します。 true の場合、session の HybsSystem.DB_LAST_SQL_KEY に格納された DBLastSql オブジェクトを取得し、scope が request または、overflow が true の場合に、BODY部を実行します。(通常、queryタグを記述します。) query の出力先は、scope を request にします。 それ以外は、tableId から取り出した DBTableModel を、scope = "request" に(アドレスのみ)コピーします。 writeTable タグでは、scope = "request" から、DBTableModel を取り出します。
  関連項目:
    直列化された形式
  形式サンプル:

         ●形式：一般ユーザーが直接組み込むことはありません。
         ●body：あり(EVAL_BODY_BUFFERED:BODYを評価し、{@XXXX} を解析します)

         ●Tag定義：
           <og:fileUD
               command            【TAG】command を指定します
               downloadImg        【TAG】ダウンロード時のアイコンを指定します(初期値:"{@SYS.JSP}/image/fileDownload.gif")
               downloadJsp        【TAG】ダウンロード時の呼び出しJSPを指定します(初期値:"{@SYS.JSP}/common/fileDownload.jsp")
               uploadImg          【TAG】アップロード時のアイコンを指定します(初期値:"{@SYS.JSP}/image/fileUpload.gif")
               uploadJsp          【TAG】アップロード時の呼び出しJSPを指定します(初期値:"{@SYS.JSP}/common/fileUpload.jsp")
               imgWidth           【TAG】アイコン幅サイズ(px)を指定します(初期値:20px)
               imgHeight          【TAG】アイコン高さサイズ(px)を指定します(初期値:20px)
               filename           【TAG】ダウンロード時ファイル名を指定します(初期値:"{@GUI.LABEL}.xls")
               addDownCmnd        【TAG】ダウンロード時のコマンドを追加指定できます(初期値:null)
               addUpldCmnd        【TAG】アップロード時のコマンドを追加指定できます(初期値:null)
               roles              【TAG】ロールズをセットします
               target             【TAG】ダウンロード文書を表示させるフレーム、またはウィンドウの名前を指定します
               errorMsg           【TAG】ダウンロード出来ない場合のエラーメッセージIDを指定します(初期値:ERR0028)
               typeDownload       【TAG】Download 処理を行うかどうかを指定します(初期値:false)
               useEditLink        【TAG】編集リンク自体を出すかどうかどうか(初期値:true)
               editImg            【TAG】編集アイコンを指定します(初期値:"{@SYS.JSP}/image/edit.png")
               clmEdit            【TAG】編集時にカラム編集タブを表示するかどうか(初期値:true)
               debug              【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false)
           >   ... Body ...
           </og:fileUD>

         ●使用例
             <og:fileUD command="{@command}" />

             <og:fileUD
                 command        = command設定 (ダウンロード="NEW|RENEW|FIRST|LAST|PREV|NEXT|VIEW" 、   アップロード="COPY|INSERT")
               [ downloadImg ]  = "{@SYS.JSP}/image/fileDownload.gif"   ダウンロード時のアイコン
               [ downloadJsp ]  = "{@SYS.JSP}/common/fileDownload.jsp"  ダウンロード時の呼び出しJSP
               [ uploadImg   ]  = "{@SYS.JSP}/image/fileUpload.gif"     アップロード時のアイコン
               [ uploadJsp   ]  = "{@SYS.JSP}/common/filePopup.jsp"     アップロード時の呼び出しJSP
               [ imgWidth    ]  = "20px"                                アイコン幅サイズ(px)
               [ imgHeight   ]  = "20px"                                アイコン高さサイズ(px)
               [ filename    ]  = "{@GUI.LABEL}.xls"               ダウンロード時ファイル名
               [ roles       ]  = "GE|DOC"                              アクセスロールズ
               [ target      ]  = "_blank"                              ダウンロードファイルを開くターゲット
               [ errorMsg    ]  = "ERR0042"                             エラーメッセージID
               [ typeDownload]  = "false/true"                          Download 処理を行うかどうか(初期値:false)
             />

  変更履歴:

    4.3.0.0 (2008/07/04) 新規追加
    5.7.4.1 (2014/03/15) エラーメッセージ変更

  機能分類
    ファイルアップロード/ダウンロード
  バージョン
    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`

  - ### コンストラクタの概要

    コンストラクタ
    コンストラクタと説明
    `FileUDTag()`

  - ### メソッドの概要

    メソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `int` | `doEndTag()` Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
    `int` | `doStartTag()` Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。
    `protected void` | `release2()` タグリブオブジェクトをリリースします。
    `void` | `setAddDownCmnd(String cmd)` 【TAG】ダウンロード時のコマンドを追加指定できます(初期値:null)
    `void` | `setAddUpldCmnd(String cmd)` 【TAG】アップロード時のコマンドを追加指定できます(初期値:null)
    `void` | `setClmEdit(String type)` 【TAG】Edit画面でカラム編集タブを出すかどうか(初期値：true)
    `void` | `setCommand(String cmd)` 【TAG】command を指定します。
    `void` | `setDownloadImg(String img)` 【TAG】ダウンロード時のアイコンを指定します(初期値:"{@SYS.JSP}/image/fileDownload.gif")。
    `void` | `setDownloadJsp(String file)` 【TAG】ダウンロード時の呼び出しJSPを指定します(初期値:"{@SYS.JSP}/common/fileDownload.jsp")。
    `void` | `setEditImg(String img)` 【TAG】編集アイコンを指定します(初期値:"{@SYS.JSP}/image/edit.png")。
    `void` | `setErrorMsg(String msg)` 【TAG】ダウンロード出来ない場合のエラーメッセージIDを指定します(初期値:ERR0042)。
    `void` | `setFilename(String file)` 【TAG】ダウンロード時ファイル名を指定します(初期値:"{@GUI.LABEL}.xls")。
    `void` | `setImgHeight(String height)` 【TAG】アイコン高さサイズ(px)を指定します(初期値:20px)。
    `void` | `setImgWidth(String width)` 【TAG】アイコン幅サイズ(px)を指定します(初期値:20px)。
    `void` | `setRoles(String rls)` 【TAG】ロールズをセットします。
    `void` | `setTarget(String flag)` 【TAG】ダウンロード文書を表示させるフレーム、またはウィンドウの名前を指定します。
    `void` | `setTypeDownload(String type)` 【TAG】Download 処理を行うかどうかを指定します(初期値:false)。
    `void` | `setUploadImg(String img)` 【TAG】アップロード時のアイコンを指定します(初期値:"{@SYS.JSP}/image/fileUpload.gif")。
    `void` | `setUploadJsp(String file)` 【TAG】アップロード時の呼び出しJSPを指定します(初期値:"{@SYS.JSP}/common/fileUpload.jsp")。
    `void` | `setUseEditLink(String flag)` 【TAG】Edit画面でカラム編集リンクを出力するかどうか(初期値：true)
    `String` | `toString()` このオブジェクトの文字列表現を返します。

    - ### クラスから継承されたメソッド org.opengion.hayabusa.taglib.CommonTagSupport

      `add, add, addEventColumn, addEventColumn, check, check, commitTableObject, debugPrint, doAfterBody, doCatch, doFinally, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getContextAttribute, getContextPath, getCookie, getCSVParameter, getDataCondition, getDateFormat, getDBColumn, getDBFunctionName, getDocumentLink, getGUIInfo, getGUIInfoAttri, getHostName, getLabel, getLabelInterface, getLanguage, getLASTAttri, getLongLabel, getMsglbl, getNVLAttri, getObject, getParameterNames, getParameterRows, getRequest, getRequestAttribute, getRequestCacheData, getRequestMethod, getRequestParameter, getRequestParameterValues, getRequestValue, getRequestValue, getRequestValues, getReservedParameter, getReservedValue, getResource, getSanitizedBodyString, getScope, getSessionAttribute, getTagName, getUser, getUserEditInfo, getUserInfo, isAjaxSubmitRequest, isDebug, isNoTransitionRequest, isNull, jspPrint, removeContextAttribute, removeObject, removeRequestAttribute, removeSessionAttribute, set, setAjaxSubmitRequest, 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`

    - ### クラスから継承されたメソッド 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`

- - ### コンストラクタの詳細

    - #### FileUDTag

          public FileUDTag()

  - ### メソッドの詳細

    - #### doStartTag

          public int doStartTag()

      Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。
      定義:
        `doStartTag` インタフェース内 `Tag`
      オーバーライド:
        `doStartTag` クラス内 `CommonTagSupport`
      戻り値:
        後続処理の指示(SKIP_BODY)
      変更履歴:

        5.1.6.0 (2010/05/01) 画面項目並べ替え対応

    - #### doEndTag

          public int doEndTag()

      Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
      定義:
        `doEndTag` インタフェース内 `Tag`
      オーバーライド:
        `doEndTag` クラス内 `CommonTagSupport`
      戻り値:
        後続処理の指示
      変更履歴:

        4.3.0.1 (2008/08/11) callBack パラメータの設定漏れ修正、引数から見直し
        5.1.6.0 (2010/05/01) 帳票画面定義機能対応
        5.1.7.0 (2010/06/01) 進む・戻るボタンでもExcel出力ボタンを出す
        5.3.6.0 (2011/06/01) Edit機能見直し
        5.3.7.0 (2011/07/01) Excel取込で画面IDとアドレスが異なる場合にエラーとなるバグを修正
        5.3.7.0 (2011/07/01) 編集画面をリサイズできるように対応します。
        5.3.7.0 (2011/07/01) PL/SQLを利用した検索でファイルダウンロードが出来るように対応します。
        5.4.2.0 (2011/12/01) 画面リソースで画面編集機能のON/OFFを設定できるようにする。
        5.5.2.4 (2012/05/16) nullに対する冗長な比較
        5.5.5.2 (2012/08/20) 画面リソースのoモード対応
        5.5.6.2 (2012/09/24) makeTagのtarget対応
        5.6.0.2 (2013/01/19) editモードのisEditコントロール対応
        5.7.5.0 (2014/04/04) 編集リンク自体を出すかどうかどうか(初期値:true)
        5.7.8.1 (2014/07/18) command="RESET" 時に、ダウンロードリンクを表示
        5.7.8.1 (2014/07/18) addDownCmnd , addUpldCmndを追加
        5.8.9.0 (2015/08/07) 6.3.4.0の移植 EditのURLをindex.jspまで指定する。

    - #### release2

          protected void release2()

      タグリブオブジェクトをリリースします。 キャッシュされて再利用されるので、フィールドの初期設定を行います。
      オーバーライド:
        `release2` クラス内 `CommonTagSupport`
      変更履歴:

        5.7.4.1 (2014/03/15) エラーメッセージ変更
        5.7.5.0 (2014/04/04) useEditLink 追加
        5.7.8.1 (2014/07/18) addDownCmnd,addUpldCmnd 追加

    - #### setCommand

          public void setCommand(String cmd)

      【TAG】command を指定します。
      パラメータ:
        `cmd` - コマンド[NEW/RENEW/FIRST/LAST/PREV/NEXT/VIEW/RESET/COPY/INSERT]
      関連項目:
        `setAddDownCmnd( String )`, `setAddUpldCmnd( String )`, `setCommand( String )`
      説明:

             command を指定します。
             ダウンロードは、"NEW|RENEW|FIRST|LAST|PREV|NEXT|VIEW|RESET" のみ有効です。
             アップロードは、"COPY|INSERT" のみ有効です。
             それ以外のコマンドでは、アイコンは表示されません。
             例えば、NEXT/PREV など。

    - #### setDownloadImg

          public void setDownloadImg(String img)

      【TAG】ダウンロード時のアイコンを指定します(初期値:"{@SYS.JSP}/image/fileDownload.gif")。
      パラメータ:
        `img` - ダウンロード時のアイコン
      説明:

             ダウンロード時に表示されるアイコンを指定します。
             初期値:"{@SYS.JSP}/image/fileDownload.gif" です。

    - #### setDownloadJsp

          public void setDownloadJsp(String file)

      【TAG】ダウンロード時の呼び出しJSPを指定します(初期値:"{@SYS.JSP}/common/fileDownload.jsp")。
      パラメータ:
        `file` - ダウンロード時の呼び出しJSP
      説明:

             ダウンロード時に呼び出されるJSPファイル名を指定します。
             初期値:"{@SYS.JSP}/common/fileDownload.jsp" です。

    - #### setUploadImg

          public void setUploadImg(String img)

      【TAG】アップロード時のアイコンを指定します(初期値:"{@SYS.JSP}/image/fileUpload.gif")。
      パラメータ:
        `img` - アップロード時のアイコン
      説明:

             アップロード時に表示されるアイコンを指定します。
             初期値:"{@SYS.JSP}/image/fileUpload.gif" です。

    - #### setUploadJsp

          public void setUploadJsp(String file)

      【TAG】アップロード時の呼び出しJSPを指定します(初期値:"{@SYS.JSP}/common/fileUpload.jsp")。
      パラメータ:
        `file` - アップロード時の呼び出しJSP
      説明:

             アップロード時に呼び出されるJSPファイル名を指定します。
             初期値:"{@SYS.JSP}/common/fileUpload.jsp" です。

    - #### setImgWidth

          public void setImgWidth(String width)

      【TAG】アイコン幅サイズ(px)を指定します(初期値:20px)。
      パラメータ:
        `width` - アイコン幅サイズ(px)
      説明:

             アップロード/ダウンロードのアイコンを表示する際の幅サイズ(px)を指定します。
             ファイルサイズは、アップロード/ダウンロード共通です。
             初期値は、20px です。

    - #### setImgHeight

          public void setImgHeight(String height)

      【TAG】アイコン高さサイズ(px)を指定します(初期値:20px)。
      パラメータ:
        `height` - アイコン高さサイズ(px)
      説明:

             アップロード/ダウンロードのアイコンを表示する際の高さサイズ(px)を指定します。
             ファイルサイズは、アップロード/ダウンロード共通です。
             初期値は、20px です。

    - #### setFilename

          public void setFilename(String file)

      【TAG】ダウンロード時ファイル名を指定します(初期値:"{@GUI.LABEL}.xls")。
      パラメータ:
        `file` - ダウンロード時ファイル名("{@GUI.LABEL}.xls")
      説明:

             ダウンロード時のファイル名を指定します
             通常は、画面のラベル(言語対応)＋XLS拡張子です。
             初期値は、"{@GUI.LABEL}.xls" です。

    - #### setRoles

          public void setRoles(String rls)

      【TAG】ロールズをセットします。
      パラメータ:
        `rls` - パラメータ
      説明:

             ここで指定したロールを元に、ユーザー毎のアクセス許可がチェックされます。
             アクセス許可されないと、表示されません。
             このロールを指定しない場合は、画面のロールが使用されます。

    - #### setTarget

          public void setTarget(String flag)

      【TAG】ダウンロード文書を表示させるフレーム、またはウィンドウの名前を指定します。
      パラメータ:
        `flag` - ダウンロード文書のフレーム名(ターゲット属性)
      説明:

             フレーム名(ターゲット属性)を設定します。

    - #### setTypeDownload

          public void setTypeDownload(String type)

      【TAG】Download 処理を行うかどうかを指定します(初期値:false)。
      パラメータ:
        `type` - Download 処理を行うかどうか(初期値:false)
      説明:

             Download 処理を行うには、指定の画面(呼び出し元)と、抜き出した時の
             DBTableModel がマッチしているか判定します。
             また、DBTableModel が存在しない、または、不備な場合(オーバーフロー)は、
             最終SQLを実行する必要があり、そもそも、抜出処理が出来ない状態では、
             エラーを返す必要があります。
             それら、一連のDownload 処理を行うかどうかを指定します。
             true の場合、session の HybsSystem.DB_LAST_SQL_KEY に格納された
             DBLastSql オブジェクトを取得し、scope が request または、overflow が
             true の場合に、BODY部を実行します。(通常、queryタグを記述します。)
             query の出力先は、scope を request にします。
             それ以外は、tableId から取り出した DBTableModel を、scope = "request"
             に(アドレスのみ)コピーします。
             writeTable タグでは、scope = "request" から、DBTableModel を取り出します。

             初期値は、false(抜き出しでは無くリンク作成) です。

    - #### setErrorMsg

          public void setErrorMsg(String msg)

      【TAG】ダウンロード出来ない場合のエラーメッセージIDを指定します(初期値:ERR0042)。
      パラメータ:
        `msg` - ダウンロード文書のフレーム名(ターゲット属性)
      説明:

             DBTableModel が、最後に作成された画面と、メモリ中の DBLastSql オブジェクトが
             管理している情報が異なる場合は、ダウンロード出来ません。
             同様に、DBLastSql オブジェクト 自身が作成されていない場合も出来ません。
             そのようなケースに表示するエラーメッセージのメッセージIDを指定します。
             引数は、指定できません。
             初期値は、『ERR0042：出力対象データが見つかりませんでした。再度検索して下さい。』 です。

    - #### setEditImg

          public void setEditImg(String img)

      【TAG】編集アイコンを指定します(初期値:"{@SYS.JSP}/image/edit.png")。
      パラメータ:
        `img` - アップロード時のアイコン
      説明:

             編集アイコンを指定します。
             初期値:"{@SYS.JSP}/image/edit.png" です。

      変更履歴:

        5.1.6.0 (2010/05/01) 新規追加

    - #### setClmEdit

          public void setClmEdit(String type)

      【TAG】Edit画面でカラム編集タブを出すかどうか(初期値：true)
      パラメータ:
        `type` - カラム編集タブを出すかどうか(初期値:true)
      説明:

             falseを指定するとカラム編集タブを出さない。

    - #### setUseEditLink

          public void setUseEditLink(String flag)

      【TAG】Edit画面でカラム編集リンクを出力するかどうか(初期値：true)
      パラメータ:
        `flag` - カラム編集リンクを出力するかどうか(初期値:true)
      関連項目:
        `QueryButtonTag.setUseEditMenu(String)`
      説明:

             falseを指定するとカラム編集リンクを出さない。
             従来は、カラム編集画面の内、【表示項目設定】タブを表示しないだけでした。
             この設定は、RWMODE を、 ##d , ##u , ##f の場合にも同様の設定が可能です。
             カラム編集リンク自体を出さない機能は、現時点ではリソース設定できないため、
             タグのパラメータとして指定できるようにします。
             基本的には、このパラメータはほとんど使われていないハズなので、
             機能を置き換えます。
             初期値は、カラム編集リンクを出力する(=true)です。

      変更履歴:

        5.7.5.0 (2014/04/04) 新規追加

    - #### setAddDownCmnd

          public void setAddDownCmnd(String cmd)

      【TAG】ダウンロード時のコマンドを追加指定できます(初期値:null)
      パラメータ:
        `cmd` - ダウンロード時のコマンドを追加指定
      関連項目:
        `setCommand( String )`
      説明:

             ダウンロードリンクが表示される command は、
             "NEW|RENEW|FIRST|LAST|PREV|NEXT|VIEW|RESET" のみです。
             これ以外の command で、ダウンロードリンクを表示させたい場合は、
             この、addDownCmnd に、記述します。
             初期値は、null(追加コマンドはない)です。

      変更履歴:

        5.7.8.1 (2014/07/18) 新規追加

    - #### setAddUpldCmnd

          public void setAddUpldCmnd(String cmd)

      【TAG】アップロード時のコマンドを追加指定できます(初期値:null)
      パラメータ:
        `cmd` - アップロード時のコマンドを追加指定
      関連項目:
        `setCommand( String )`
      説明:

             アップロードリンクが表示される command は、"COPY|INSERT" のみです。
             これ以外の command で、アップロードリンクを表示させたい場合は、
             この、addUpldCmnd に、記述します。
             初期値は、null(追加コマンドはない)です。

      変更履歴:

        5.7.8.1 (2014/07/18) 新規追加

    - #### toString

          public String toString()

      このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。
      オーバーライド:
        `toString` クラス内 `CommonTagSupport`
      戻り値:
        このクラスの文字列表現

Webアプリケーションフレームワーク openGion
Copyright (c) 2009 The openGion Project.