org.opengion.hayabusa.taglib

## クラス CommonForwardTag

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

- すべての実装されたインタフェース:
    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 CommonForwardTag
      extends CommonTagSupport

  submitタグを用いてページ転送するタグです(forward.jsp で使用)。 通常、forward は、ページ内転送(サーバー内部での転送)のため、別画面への遷移には 使用できません。これは、別画面では、index.jsp 等でフレーム分割する際の基準フォルダは、 forward の場合、クライアントは理解していないため、もう一度先のフォルダに対する フレーム分割を行おうとするためです。 (よく、index.jsp の frame タグに、src="../XXXX/query.jsp" などと、自分自身のフォルダ名を 記述したページを見かけますが、これは、フォルダをまたがる転送に、forward を使用する 為の悪い対策です。) 実際は、forward ではなく、redirect を使うべきです。redirect は、指定のアドレス要求を、 一旦クライアントに投げてそこから再度要求しなおしてもらう方式のため、このようにフォルダを またがる転送も正常に処理できます。 この、commonForward タグでは、画面遷移の条件に応じて、forward か redirect の自動 判定を行い、適切に処理しています。 判定条件は、拡張子や、選択件数などを加味して以下の判定を順次テストします。 FORWARD : アドレスが、 null(自分自身) か、.jsp を含み、"/" が入っていない場合 REDIRECT: アドレスが、.jsp を含まないか、 それ以外(.jsp を含み、"/" も含む)で、選択数が１件のみの場合 もしくはuseRedirectCheck="false"の場合 COUNT_0 : それ以外で、選択数が０件の場合 COUNT_N : それ以外で、選択数が１件以上の場合、または、その他。 ここで、COUNT_0 の場合は、未選択エラー、COUNT_N は、複数選択エラーを自動的に返します。
  関連項目:
    直列化された形式
  形式サンプル:

         ●形式：<og:commonForward />
         ●body：なし

         ●Tag定義：
           <og:commonForward
               dbkeys             【TAG】DBキーをCSV 形式でセットします
               tableId            【TAG】(通常使いません)sessionから所得する DBTableModelオブジェクトの ID
               debug              【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false)
               useRedirectCheck   【TAG】非選択状態の場合にforwardを許可するかどうか[true/false]を指定します(初期値:true)
           />

         ●使用例
             フォワードキャッシュによりページ転送します。
             <og:commonForward dbkeys="{@dbkeys}" />

  機能分類
    画面制御
  バージョン
    4.0
  作成者
    Masaharu Endo
  導入されたバージョン:
    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`

  - ### コンストラクタのサマリー

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

  - ### メソッドのサマリー

    すべてのメソッド インスタンス・メソッド concreteメソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `int` | `doEndTag()` Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
    `protected void` | `release2()` タグリブオブジェクトをリリースします。
    `void` | `setDbkeys(java.lang.String key)` 【TAG】DBキーをCSV 形式でセットします。
    `void` | `setTableId(java.lang.String id)` 【TAG】(通常使いません)sessionから所得する DBTableModelオブジェクトの ID (初期値:HybsSystem#TBL_MDL_KEY[=h_tblmdl])。
    `void` | `setUseRedirectCheck(java.lang.String flag)` 【TAG】非選択状態の場合にforwardを許可するかどうか[true/false]を指定します(初期値:true)。
    `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, 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`

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

    - #### CommonForwardTag

          public CommonForwardTag()

  - ### メソッドの詳細

    - #### doEndTag

          public int doEndTag()

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

        3.3.1.1 (2003/07/03) ＵＲＬにリクエスト情報をＵＲＬエンコードして追加します。
        3.5.5.2 (2004/04/02) フォルダ外転送時は、１行以外選択は、エラーとします。
        3.5.5.3 (2004/04/09) デバッグ時は、転送しないようにします。
        3.8.0.4 (2005/08/08) requestUrlEncode 廃止
        3.8.0.8 (2005/10/03) dbkeys が null の場合に全件取得していた処理を復活します。
        4.0.0.0 (2007/11/09) 非選択状態からの遷移を許可するフラグを追加(11/12に振り分け処理をselectResponseMethodに移動)
        5.0.0.2 (2009/09/15) XSS対応⇒チェックする
        5.3.6.0 (2011/06/01) エラーメッセージ変更(URLの振り分け処理時に...のメッセージは出力しない)

    - #### release2

          protected void release2()

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

        3.5.5.2 (2004/04/02) 新規追加(rowCount,useTableData)
        3.5.5.5 (2004/04/23) URLに連結するDBTableModelのカラムをCSV形式で指定します。
        3.8.5.1 (2006/04/28) URLに連結するDBTableModelのカラムを[カラム]形式で指定します。

    - #### setTableId

          public void setTableId(java.lang.String id)

      【TAG】(通常使いません)sessionから所得する DBTableModelオブジェクトの ID (初期値:HybsSystem#TBL_MDL_KEY[=h_tblmdl])。
      パラメータ:
        `id` - sessionから所得する時の ID
      説明:

             表示処理後に，(内部ポインタを書き換えた)DBTableModelオブジェクトを
             同じキーで、sessionに登録します。
            		(初期値:HybsSystem#TBL_MDL_KEY[={@og.value org.opengion.hayabusa.common.HybsSystem#TBL_MDL_KEY}])。

      変更履歴:

        3.5.5.2 (2004/04/02) 新規追加
        3.5.5.8 (2004/05/20) 内部仮想リクエスト Map を参照できるようにする。

    - #### setDbkeys

          public void setDbkeys(java.lang.String key)

      【TAG】DBキーをCSV 形式でセットします。
      パラメータ:
        `key` - DBキー(CSV 形式)
      説明:

             URI の引数にセットするキーを CSV 形式でセットします。
             ここの指定は,DBTableModel 上のデータを取り込みます。

      変更履歴:

        3.5.5.5 (2004/04/23) URLに連結するDBTableModelのカラムをCSV形式で指定します。
        3.5.5.8 (2004/05/20) 内部仮想リクエスト Map を参照できるようにする。

    - #### setUseRedirectCheck

          public void setUseRedirectCheck(java.lang.String flag)

      【TAG】非選択状態の場合にforwardを許可するかどうか[true/false]を指定します(初期値:true)。
      パラメータ:
        `flag` - 非選択状態のforwardを許可 [true:不許可/false:許可]
      説明:

             初期値はtrueが設定されています
             falseにすると許可されます

      変更履歴:

        4.0.0.0 (2007/11/09) 新規作成

    - #### toString

          public java.lang.String toString()

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

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