概要 | パッケージ | クラス | 階層ツリー | 非推奨 API | 索引 | ヘルプ
openGion 5.1.3.0
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

## org.opengion.hayabusa.taglib
クラス ReadTableTag

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

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

    public class ReadTableTag

extends CommonTagSupport

指定のファイルを DBTableModel オブジェクトに読み取るファイル入力タグです。 データ（DBTableModel)と、コントローラ（ReadTableタグ)を与えて、外部からコントロールすることで、 各種形式で データ（DBTableModel)を表示させることが できます。 ReadTableタグ に対して、コマンドを与えることにより、内部のコントローラの実装に対応した 形式でデータを作成します。 すべての読取の初期クラス名を リソースファイルの TABLE_READER_DEFAULT_CLASS で指定可能です。 その場合、AutoReader を指定すると、Excel と Default(テキスト) を順番に試します。 入力件数を"DB.COUNT" キーでリクエストにセットしています。

関連項目:
  直列化された形式
機能階層
  ファイル入力
形式サンプル:

       ●形式：
           <og:readTable
               command      = "NEW"
               fileURL      = "{@USER.ID}"     読み取り元ディレクトリ名
               filename     = "{@filename}"    読み取り元ファイル名
               encode       = "UnicodeLittle"       読み取り元ファイルエンコード名
               maxRowCount  = "10000"               読取最大件数
           />
       ●body：なし

       ●使用例

           <og:readTable
               command        = "NEW"
               readerClass    = "Fixed"               固定長データの読み取り
               modifyType     = "{@modifyType}"  読取時のモディファイタイプ（A,C等）
               fileURL        = "{@USER.ID}"     読み取り元ディレクトリ名
               filename       = "{@filename}"    読み取り元ファイル名
               encode         = "Shift_JIS"           読み取り元ファイルエンコード名
               maxRowCount    = "10000"               読取最大件数
               columns        = "OYA,KO,HJO,SU,DYSTR,DYEND"   #NAME に対応するカラム列
               useNumber      = "false"               行番号の存在しないデータを読み取ります。
               adjustColumns  = "OYA,KO,HJO,SU"       データ変換するカラム列("*" で全カラム)
               checkColumns   = "OYA,KO,HJO,SU"       整合性チェックするカラム列("*" で全カラム)
               nullCheck      = "OYA,KO,SU"           NULLチェックを実行します("*" で全カラム)
               stopZero       = "true"                取得0件の場合に以降の処理を停止します
           />

バージョン
  4.0
作成者
  Kazuhiko Hasegawa
導入されたバージョン:
  JDK5.0,

フィールドの概要
`static String` | `CMD_NEW` command 引数に渡す事の出来る コマンド 新規作成 "NEW"
`static String` | `CMD_RENEW` command 引数に渡す事の出来る コマンド 再検索 "RENEW"

クラス 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`

コンストラクタの概要
`ReadTableTag()`

メソッドの概要
`protected void` | `create(BufferedReader out)` TableReader の実オブジェクトを生成して，BufferedReader に書き込みます。
`int` | `doEndTag()` Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
`protected void` | `release2()` タグリブオブジェクトをリリースします。
`void` | `setAdjustColumns(String clms)` 【TAG】読み取り元ファイルのデータ変換を行うカラム列をカンマ指定します。
`void` | `setCheckColumns(String clms)` 【TAG】読み取り元ファイルの整合性チェックを行うカラム列をカンマ指定します。
`void` | `setColumns(String clms)` 【TAG】読み取り元ファイルのカラム列を、外部（タグ）より指定します。
`void` | `setCommand(String cmd)` 【TAG】コマンド(NEW,RENEW)をセットします(初期値:NEW)。
`void` | `setDisplayMsg(String id)` 【TAG】query の結果を画面上に表示するメッセージIDを指定します(初期値:MSG0033[　件検索しました])。
`void` | `setEncode(String enc)` 【TAG】ファイルを作成するときのファイルエンコーディング名をセットします(初期値:FILE_ENCODE)。
`void` | `setFilename(String filename)` 【TAG】ファイルを作成するときのファイル名をセットします(初期値:FILE_FILENAME)。
`void` | `setFileURL(String url)` 【TAG】読み取り元ディレクトリ名を指定します(初期値:FILE_URL)。
`void` | `setMaxRowCount(String count)` 【TAG】読取時の最大取り込み件数をセットします(初期値:DB_MAX_ROW_COUNT)。
`void` | `setModifyType(String type)` 【TAG】ファイル取り込み時の モディファイタイプ（A(追加),C(更新),D(削除)）を指定します。
`void` | `setNotfoundMsg(String id)` 【TAG】検索結果がゼロ件の場合に表示するメッセージリソースIDを指定します(初期値:MSG0077[対象データはありませんでした])。
`void` | `setNullCheck(String clms)` 【TAG】NULL チェックすべきカラム列をカンマ区切りで指定します。
`void` | `setReaderClass(String readerClass)` 【TAG】実際に読み出すクラス名の略称(TableReader_**** の ****)をセットします(初期値:Default)。
`void` | `setSeparator(String separator)` 【TAG】可変長ファイルを作成するときの項目区切り文字をセットします。
`void` | `setSheetName(String sheet)` 【TAG】EXCELファイルを読み込むときのシート名を設定します(初期値:第１シート)。
`void` | `setStopZero(String cmd)` 【TAG】読込件数が０件のとき処理を続行するかどうか(true/false)を指定します(初期値:false[続行する])。
`void` | `setTableId(String tableId)` 【TAG】(通常使いません)sessionから所得する DBTableModel オブジェクトの ID。
`void` | `setUseNumber(String useNo)` 【TAG】行番号情報を、使用している(true)/していない(false)を指定します。
`String` | `toString()` このオブジェクトの文字列表現を返します。

クラス org.opengion.hayabusa.taglib.CommonTagSupport から継承されたメソッド
`add, add, addEventColumnSQL, check, check, commitTableObject, debugPrint, doAfterBody, doCatch, doFinally, doStartTag, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getContextAttribute, getContextPath, getCookie, getCSVParameter, getDataCondition, getDateFormat, getDBColumn, getDBFunctionName, getDocumentLink, getGUIInfo, getGUIInfoAttri, getLabel, getLabelInterface, getLanguage, getLongLabel, getMsglbl, getObject, getParameterNames, getParameterRows, getRequest, getRequestAttribute, getRequestCacheData, getRequestParameter, getRequestParameterValues, getRequestValue, getRequestValue, getRequestValues, getResource, getScope, getSessionAttribute, getTagName, getUser, getUserInfo, isAjaxSubmitRequest, isDebug, isNoTransitionRequest, isNull, jspPrint, removeContextAttribute, removeObject, removeRequestAttribute, removeSessionAttribute, set, setAjaxSubmitRequest, setContextAttribute, setCookie, setDebug, setLanguage, setLbl, setMsglbl, setNoTransitionRequest, setObject, setParameterRows, setRequestAttribute, setRequestCacheData, setScope, setSessionAttribute, setUserInfo, setUseValue, startQueryTransaction, sys, sysBool, sysInt, useQuotCheck, 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`

フィールドの詳細

### CMD_NEW

    public static final String CMD_NEW

  command 引数に渡す事の出来る コマンド 新規作成 "NEW"

  関連項目:
    定数フィールド値

### CMD_RENEW

    public static final String CMD_RENEW

  command 引数に渡す事の出来る コマンド 再検索 "RENEW"

  関連項目:
    定数フィールド値

コンストラクタの詳細

### ReadTableTag

    public ReadTableTag()

メソッドの詳細

### doEndTag

    public int doEndTag()

  Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。

  定義:
    インタフェース `Tag` 内の `doEndTag`
  オーバーライド:
    クラス `CommonTagSupport` 内の `doEndTag`
  戻り値:
    int
  変更履歴:

    3.0.1.4 (2003/03/17) displayMsg が ０Byteの場合は、件数も表示しないように変更。
    3.1.1.2 (2003/04/04) Tomcat4.1 対応。release2() を doEndTag()で呼ぶ。
    3.5.4.1 (2003/12/01) 引数の BufferedReader を、InputStream に変更。
    3.5.4.3 (2004/01/05) 引数の InputStream を、 BufferedReader に戻す。
    3.5.6.5 (2004/08/09) 暫定的に、DBTableModelを先行削除します。
    3.6.0.0 (2004/09/24) DBTableModel の先行削除は、scope="session" の場合のみ。
    3.6.0.2 (2004/10/04) 取り込み時チェック用に、checkColumns,adjustColumns 属性追加
    3.6.0.8 (2004/11/19) DBTableModel をセーブする時に、トランザクションチェックを行います。
    3.8.5.3 (2006/08/07) readerClassが "Excel"でエラーが発生したとき、もう一度Defaultで再読取を行います。
    4.0.0.0 (2007/10/12) checkTableColumn 前に、modifyType 設定を行います。
    4.0.0.0 (2007/10/18) メッセージリソース統合( getResource().getMessage > getResource().getLabel )
    4.3.1.1 (2008/10/08) columnsが指定されている場合は、AutoReader禁止
    4.3.7.0 (2009/06/01) stopZero機能,DB.COUNTリクエストキーへ読込件数セットを追加

### release2

    protected void release2()

  タグリブオブジェクトをリリースします。 キャッシュされて再利用されるので、フィールドの初期設定を行います。

  オーバーライド:
    クラス `CommonTagSupport` 内の `release2`
  変更履歴:

    2.0.0.4 (2002/09/27) カスタムタグの release() メソッドを、追加
    3.1.1.2 (2003/04/04) Tomcat4.1 対応。release2() を doEndTag()で呼ぶ。
    3.1.3.0 (2003/04/10) FILE_ENCODE から、エンコード情報を取得する。
    3.1.4.0 (2003/04/18) command 属性に、初期値（NEW)を設定する。
    3.5.4.2 (2003/12/15) EXCELのシート名を指定できるように変更。
    3.5.4.5 (2004/01/23) 外部よりカラム列（カンマ区切り）を指定できるようにする。
    3.6.0.2 (2004/10/04) checkColumns,adjustColumns,allColumnCheck 属性追加
    3.7.0.5 (2005/04/11) useNumber 属性を追加します。
    3.8.0.2 (2005/06/30) nullCheck 属性追加
    3.8.5.3 (2006/08/07) readerClass 属性の初期値をシステムリソースより取得します。
    4.3.7.0 (2009/06/01) stopZero属性追加

### create

    protected void create(BufferedReader out)

  TableReader の実オブジェクトを生成して，BufferedReader に書き込みます。

  変更履歴:

    3.5.4.1 (2003/12/01) 引数の BufferedReader を、InputStream に変更。
    3.5.4.2 (2003/12/15) TableReader のサブクラス名変更。
    3.5.4.2 (2003/12/15) EXCELのシート名を指定できるように変更。
    3.5.4.3 (2004/01/05) 引数の InputStream を、 BufferedReader に戻す。
    3.5.4.5 (2004/01/23) TableReader に、encode を渡すように変更。
    3.5.6.0 (2004/06/18) 各種プラグイン関連付け設定を、システムパラメータ に記述します。
    3.7.0.5 (2005/04/11) useNumber 属性を追加します。
    4.0.0 (2005/01/31) キーの指定を、TableReader. から、TableReader_ に変更します。
    4.0.0 (2005/01/31) lang ⇒ ResourceManager へ変更

### setTableId

    public void setTableId(String tableId)

  【TAG】(通常使いません)sessionから所得する DBTableModel オブジェクトの ID。

  パラメータ:
    `tableId` - sessionに登録する時の ID
  TagLib:

    表示処理後に，（内部ポインタを書き換えた）DBTableModel オブジェクトを 同じキーで、sessionに登録します。 初期値は、HybsSystem.TBL_MDL_KEY です。

### setSeparator

    public void setSeparator(String separator)

  【TAG】可変長ファイルを作成するときの項目区切り文字をセットします。

  パラメータ:
    `separator` - 項目区切り文字
  TagLib:

    可変長ファイルを作成するときの項目区切り文字をセットします。

### setFileURL

    public void setFileURL(String url)

  【TAG】読み取り元ディレクトリ名を指定します(初期値:FILE_URL)。

  パラメータ:
    `url` - 読み取り元ディレクトリ名
  TagLib:

    この属性で指定されるディレクトリより、ファイルを読み取ります。 指定方法は、通常の fileURL 属性と同様に、先頭が、'/' （UNIX) または、２文字目が、 ":" （Windows）の場合は、指定のURLそのままのディレクトリに、そうでない場合は、 システムパラメータ の FILE_URL 属性で指定のフォルダの下を指定します。 fileURL = "{@USER.ID}" と指定すると、FILE_URL 属性で指定のフォルダの下に、 さらに、各個人ID別のフォルダを作成して、そこを操作します。

  変更履歴:

    4.0.0 (2005/01/31) StringUtil.urlAppend メソッドの利用
    4.0.0.0 (2007/11/20) 指定されたディレクトリ名の最後が"\"or"/"で終わっていない場合に、"/"を付加する。

### setFilename

    public void setFilename(String filename)

  【TAG】ファイルを作成するときのファイル名をセットします(初期値:FILE_FILENAME)。

  パラメータ:
    `filename` - ファイル名
  TagLib:

    ファイルを作成するときのファイル名をセットします。

### setEncode

    public void setEncode(String enc)

  【TAG】ファイルを作成するときのファイルエンコーディング名をセットします(初期値:FILE_ENCODE)。

  パラメータ:
    `enc` - ファイルエンコーディング名
  関連項目:
    IANA Charset Registry
  TagLib:

    初期値は、システムパラメータ の FILE_ENCODE 属性で、設定しています。 Shift_JIS,MS932,Windows-31J,UTF-8,ISO-8859-1,UnicodeLittle

  変更履歴:

    2.2.0.0 (2002/12/17) 中国語（国際化）対応 エンコードの取得方法変更
    3.1.3.0 (2003/04/10) FILE_ENCODE から、エンコード情報を取得する。

### setReaderClass

    public void setReaderClass(String readerClass)

  【TAG】実際に読み出すクラス名の略称(TableReader_**** の ****)をセットします(初期値:Default)。

  パラメータ:
    `readerClass` - クラス名（の略称）
  関連項目:
    `TableReaderのサブクラス`
  TagLib:

    実際に読み出すクラス名（の略称）をセットします。 これは、org.opengion.hayabusa.io 以下の TableReader_**** クラスの **** を 与えます。これらは、TableReader インターフェースを継承したサブクラスです。 属性クラス定義の readerClass を参照願います。

### setMaxRowCount

    public void setMaxRowCount(String count)

  【TAG】読取時の最大取り込み件数をセットします(初期値:DB_MAX_ROW_COUNT)。

  パラメータ:
    `count` - 読取時の最大取り込み件数
  TagLib:

    DBTableModelのデータとして登録する最大件数をこの値に設定します。 サーバーのメモリ資源と応答時間の確保の為です。 0 をセットすると、無制限(Integer.MAX_VALUE)になります。

### setCommand

    public void setCommand(String cmd)

  【TAG】コマンド(NEW,RENEW)をセットします(初期値:NEW)。

  パラメータ:
    `cmd` - コマンド（public static final 宣言されている文字列)
  関連項目:
    コマンド定数
  TagLib:

    コマンドは,HTMLから（get/post)指定されますので,CMD_xxx で設定される フィールド定数値のいづれかを、指定できます。 何も設定されない、または、null の場合は、"NEW" が初期値にセットされます。

### setDisplayMsg

    public void setDisplayMsg(String id)

  【TAG】query の結果を画面上に表示するメッセージIDを指定します(初期値:MSG0033[　件検索しました])。

  パラメータ:
    `id` - ディスプレイに表示させるメッセージ ID
  TagLib:

    ここでは、検索結果の件数や登録された件数をまず出力し、 その次に、ここで指定したメッセージをリソースから取得して 表示します。 表示させたくない場合は, displayMsg = "" をセットしてください。 初期値は、検索件数を表示します。

### setNotfoundMsg

    public void setNotfoundMsg(String id)

  【TAG】検索結果がゼロ件の場合に表示するメッセージリソースIDを指定します(初期値:MSG0077[対象データはありませんでした])。

  パラメータ:
    `id` - ディスプレイに表示させるメッセージ ID
  TagLib:

    ここでは、検索結果がゼロ件の場合のみ、特別なメッセージを表示させます。 従来は、displayMsg と兼用で、『0　件検索しました』という表示でしたが、 displayMsg の初期表示は、OFF になりましたので、ゼロ件の場合のみ別に表示させます。 表示させたくない場合は, notfoundMsg = "" をセットしてください。 初期値は、MSG0077[対象データはありませんでした]です。

### setModifyType

    public void setModifyType(String type)

  【TAG】ファイル取り込み時の モディファイタイプ（A(追加),C(更新),D(削除)）を指定します。

  パラメータ:
    `type` - ファイル取り込み時の モディファイタイプ（A,C,D属性）
  TagLib:

    ファイル読み込み時に、そのデータをA(追加）、C(更新）、D(削除)の モディファイタイプをつけた状態にします。 その状態で、そのまま、update する事が可能になります。

### setSheetName

    public void setSheetName(String sheet)

  【TAG】EXCELファイルを読み込むときのシート名を設定します(初期値:第１シート)。

  パラメータ:
    `sheet` - EXCELファイルのシート名
  TagLib:

    EXCELファイルを読み込む時に、シート名を指定します。これにより、複数の形式の 異なるデータを順次読み込むことや、シートを指定して読み取ることが可能になります。 初期値は、第一シートです。

  変更履歴:

    3.5.4.2 (2003/12/15) 新規追加

### setColumns

    public void setColumns(String clms)

  【TAG】読み取り元ファイルのカラム列を、外部（タグ）より指定します。

  パラメータ:
    `clms` - 読み取り元ファイルのカラム列（カンマ区切り文字）
  TagLib:

    読み取り元ファイルのカラム列を、外部（タグ）より指定します。 ファイルに記述された #NAME より優先して使用されます。 これは、元ファイルのカラムを順番に指定のカラム名に割り当てる機能で ファイルの特定のカラム列を抜き出して取り込む機能ではありません。

  変更履歴:

    3.5.4.5 (2004/01/23) 新規作成

### setCheckColumns

    public void setCheckColumns(String clms)

  【TAG】読み取り元ファイルの整合性チェックを行うカラム列をカンマ指定します。

  パラメータ:
    `clms` - 整合性チェックを行うカラム列（カンマ区切り文字）
  TagLib:

    カラムオブジェクトのDBType属性に対応したチェックを行います。 指定のカラム名をカンマ区切り(CSV)で複数指定できます。 全てのカラムのチェックを行う場合は、allColumnCheck = "true" を 指定して下さい。 分解方法は、通常のパラメータ取得後に、CSV分解します。

  変更履歴:

    3.6.0.2 (2004/10/04) 新規追加 取り込み時チェック用
    3.8.8.5 (2007/03/09) 通常のパラメータ取得後に、CSV分解に戻します。

### setAdjustColumns

    public void setAdjustColumns(String clms)

  【TAG】読み取り元ファイルのデータ変換を行うカラム列をカンマ指定します。

  パラメータ:
    `clms` - データ変換を行うカラム列（カンマ区切り文字）
  TagLib:

    カラムオブジェクトのDBType属性に対応したデータ変換を行います。 指定のカラム名をカンマ区切り(CSV)で複数指定できます。 分解方法は、通常のパラメータ取得後に、CSV分解します。

  変更履歴:

    3.6.0.2 (2004/10/04) 新規追加 取り込み時データ変換
    3.8.8.5 (2007/03/09) 通常のパラメータ取得後に、CSV分解に戻します。

### setNullCheck

    public void setNullCheck(String clms)

  【TAG】NULL チェックすべきカラム列をカンマ区切りで指定します。

  パラメータ:
    `clms` - String
  TagLib:

    nullCheck="AAA,BBB,CCC,DDD" 先に配列に分解してからリクエスト変数の値を取得するようにします。 こうする事で、リクエストにカンマ区切りの値を設定できるようになります。 分解方法は、通常のパラメータ取得後に、CSV分解します。

  変更履歴:

    3.8.0.2 (2005/06/30) 新規追加
    3.8.8.5 (2007/03/09) 通常のパラメータ取得後に、CSV分解に戻します。

### setUseNumber

    public void setUseNumber(String useNo)

  【TAG】行番号情報を、使用している(true)/していない(false)を指定します。

  パラメータ:
    `useNo` - 行番号情報を、使用している(true)/していない(false)を指定
  TagLib:

    通常のフォーマットでは、各行の先頭に行番号が出力されています。 読み取り時に、#NAME 属性を使用する場合は、この行番号を無視しています。 #NAME 属性を使用せず、columns 属性でカラム名を指定する場合(他システムの 出力ファイルを読み取るケース等）では、行番号も存在しないケースがあり、 その様な場合に、useNumber="false" を指定すれば、データの最初から読み取り始めます。 この場合、出力データのカラムの並び順が変更された場合、columns 属性も 指定しなおす必要がありますので、できるだけ、#NAME 属性を使用するように してください。 なお、EXCEL 入力には、この設定は適用されません。(暫定対応) デフォルトは、true（使用する） です。

  変更履歴:

    3.7.0.5 (2005/04/11) 新規追加

### setStopZero

    public void setStopZero(String cmd)

  【TAG】読込件数が０件のとき処理を続行するかどうか(true/false)を指定します(初期値:false[続行する])。

  パラメータ:
    `cmd` - 読込件数が０件のとき、処理を中止する（true) / 続行する（false)
  TagLib:

    初期値は、false(続行する)です。

  変更履歴:

    4.3.7.0 (2009/06/01) 新規追加

### toString

    public String toString()

  このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。

  オーバーライド:
    クラス `CommonTagSupport` 内の `toString`
  戻り値:
    このクラスの文字列表現

概要 | パッケージ | クラス | 階層ツリー | 非推奨 API | 索引 | ヘルプ
| openGion 5.1.3.0
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

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