クラス CommonForwardTag

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

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 を含み、"/" も含む)で、選択数が1件のみの場合 もしくはuseRedirectCheck="false"の場合 COUNT_0 : それ以外で、選択数が0件の場合 COUNT_N : それ以外で、選択数が1件以上の場合、または、その他。 ここで、COUNT_0 の場合は、未選択エラー、COUNT_N は、複数選択エラーを自動的に返します。
関連項目:
機能分類
画面制御
形式サンプル:
●形式:<og:commonForward /> ●body:なし ●Tag定義: <og:commonForward dbkeys 【TAG】DBキーをCSV形式でセットします tableId 【TAG】(通常は使いません)sessionから所得する DBTableModelオブジェクトの ID useRedirectCheck 【TAG】非選択状態の場合にforwardを許可するかどうか[true/false]を指定します(初期値:true) useRedirectHidden 【TAG】redirectの処理時に、hiddenパラメータを転送するかどうか[true:する/false:しない]指定します(初期値:false)。 debug 【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false) useSLabel 【TAG】7.0.7.0 (2019/12/13) エラーメッセージにSLABELを利用するかどうか[true/false]を指定します(初期値:false) /> ●使用例 フォワードキャッシュによりページ転送します。 <og:commonForward dbkeys="{@dbkeys}" />
導入されたバージョン:
JDK5.0,
  • コンストラクタの詳細

    • CommonForwardTag

      デフォルトコンストラクター
      変更履歴:
      6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor.
  • メソッドの詳細

    • doEndTag

      public int doEndTag()
      Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
      定義:
      doEndTag インタフェース内 Tag
      オーバーライド:
      doEndTag クラス内 CommonTagSupport
      戻り値:
      後続処理の指示
      変更履歴:
      3.3.1.1 (2003/07/03) URLにリクエスト情報をURLエンコードして追加します。, 3.5.5.2 (2004/04/02) フォルダ外転送時は、1行以外選択は、エラーとします。, 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の振り分け処理時に...のメッセージは出力しない), 6.2.4.0 (2015/05/15) useRedirectHidden 属性追加, 7.0.7.0 (2019/12/13) useSLabel 属性を追加。
    • 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のカラムを[カラム]形式で指定します。, 6.2.4.0 (2015/05/15) useRedirectHidden 属性追加, 6.4.3.1 (2016/02/12) PMD refactoring. HashMap → ConcurrentHashMap に置き換え。, 7.0.7.0 (2019/12/13) useSLabel 属性を追加。
    • setTableId

      public void setTableId(String id)
      【TAG】(通常は使いません)sessionから所得する DBTableModelオブジェクトの ID (初期値:HybsSystem#TBL_MDL_KEY[=])。
      パラメータ:
      id - テーブルID (sessionから所得する時のID)
      変更履歴:
      3.5.5.2 (2004/04/02) 新規追加, 3.5.5.8 (2004/05/20) 内部仮想リクエスト Map を参照できるようにする。
      説明:
      表示処理後に,(内部ポインタを書き換えた)DBTableModelオブジェクトを 同じキーで、sessionに登録します。 (初期値:HybsSystem#TBL_MDL_KEY[=])。
    • setDbkeys

      public void setDbkeys(String key)
      【TAG】DBキーをCSV形式でセットします。
      パラメータ:
      key - DBキー(CSV形式)
      変更履歴:
      3.5.5.5 (2004/04/23) URLに連結するDBTableModelのカラムをCSV形式で指定します。, 3.5.5.8 (2004/05/20) 内部仮想リクエスト Map を参照できるようにする。
      説明:
      URI の引数にセットするキーを CSV形式でセットします。 ここの指定は,DBTableModel 上のデータを取り込みます。
    • setUseRedirectCheck

      public void setUseRedirectCheck(String flag)
      【TAG】非選択状態の場合にforwardを許可するかどうか[true/false]を指定します(初期値:true)。
      パラメータ:
      flag - 非選択状態のforward許可 [true:不許可/false:許可]
      変更履歴:
      4.0.0.0 (2007/11/09) 新規作成
      説明:
      初期値はtrueが設定されています falseにすると許可されます
    • setUseRedirectHidden

      public void setUseRedirectHidden(String flag)
      【TAG】redirectの処理時に、hiddenパラメータを転送するかどうか[true:する/false:しない]を指定します(初期値:false)。
      パラメータ:
      flag - 非選択状態のforward許可 [true:不許可/false:許可]
      変更履歴:
      6.2.4.0 (2015/05/15) 新規作成
      説明:
      submitTag で、gamenId を指定すると、redirect されます。 その場合、従来の画面では、hidden 属性が転送されていなかったため、 個別に keys,vals で指定する必要がありました。 hidden で記述した値は、redirect でも転送できるようにします。 なお、個別定義済みのパラメータがあり、hiddenパラメータを同じキーの場合は、 個別パラメータを優先し、hiddenパラメータは転送しません。 本来は、gamenId指定の submit の場合でも、必要最小限の値のみ転送すべきで、 この値を true にするのは、過去のJSPソースを、修正せずに使いたいケースに限定してください。 互換性の関係で、初期値は、false にします。
    • setUseSLabel

      public void setUseSLabel(String prm)
      【TAG】エラーメッセージにSLABELを利用するかどうか[true/false]を指定します(初期値:false)。
      パラメータ:
      prm - SLABEL利用 [true:利用する/false:利用しない]
      変更履歴:
      7.0.7.0 (2019/12/13) 新規追加
      説明:
      通常のエラーメッセージは、ラベル(長)が使われますが、これをラベル(短)を使いたい場合に、true にセットします。 ここでのラベル(短)は、タグ修飾なしの、ラベル(短)です。 標準はfalse:利用しない=ラベル(長)です。 true/false以外を指定した場合はfalse扱いとします。 ラベルリソースの概要説明があれば表示しますが、useSLabel="true" 時は、概要説明を表示しません。
    • toString

      public String toString()
      このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。
      オーバーライド:
      toString クラス内 CommonTagSupport
      戻り値:
      このクラスの文字列表現
      このメソッドは、nullを返しません