クラス CommonForwardTag
java.lang.Object
jakarta.servlet.jsp.tagext.TagSupport
jakarta.servlet.jsp.tagext.BodyTagSupport
org.opengion.hayabusa.taglib.CommonTagSupport
org.opengion.hayabusa.taglib.CommonForwardTag
- すべての実装されたインタフェース:
BodyTag
,IterationTag
,JspTag
,Tag
,TryCatchFinally
,Serializable
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,
-
フィールドの概要
クラスから継承されたフィールド org.opengion.hayabusa.taglib.CommonTagSupport
BR, BUFFER_MIDDLE, CR
クラスから継承されたフィールド jakarta.servlet.jsp.tagext.BodyTagSupport
bodyContent
クラスから継承されたフィールド jakarta.servlet.jsp.tagext.TagSupport
id, pageContext
インタフェースから継承されたフィールド jakarta.servlet.jsp.tagext.BodyTag
EVAL_BODY_BUFFERED, EVAL_BODY_TAG
インタフェースから継承されたフィールド jakarta.servlet.jsp.tagext.IterationTag
EVAL_BODY_AGAIN
インタフェースから継承されたフィールド jakarta.servlet.jsp.tagext.Tag
EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE
-
コンストラクタの概要
コンストラクタ -
メソッドの概要
修飾子とタイプメソッド説明int
doEndTag()
Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。protected void
release2()
タグリブオブジェクトをリリースします。void
【TAG】DBキーをCSV形式でセットします。void
setTableId
(String id) 【TAG】(通常は使いません)sessionから所得する DBTableModelオブジェクトの ID (初期値:HybsSystem#TBL_MDL_KEY[=])。void
setUseRedirectCheck
(String flag) 【TAG】非選択状態の場合にforwardを許可するかどうか[true/false]を指定します(初期値:true)。void
setUseRedirectHidden
(String flag) 【TAG】redirectの処理時に、hiddenパラメータを転送するかどうか[true:する/false:しない]を指定します(初期値:false)。void
setUseSLabel
(String prm) 【TAG】エラーメッセージにSLABELを利用するかどうか[true/false]を指定します(初期値:false)。toString()
このオブジェクトの文字列表現を返します。クラスから継承されたメソッド org.opengion.hayabusa.taglib.CommonTagSupport
add, add, addEventColumn, addEventColumn, check, commitTableObject, debugPrint, debugPrint, doAfterBody, doCatch, doFinally, doStartTag, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getContextAttribute, getContextPath, getCookie, getCSVParameter, getCSVParameter, getDateFormat, getDBColumn, getDBFunctionName, getDocumentLink, getGUIInfo, getGUIInfoAttri, getHostName, getLabel, getLabelInterface, getLanguage, getLongLabel, getMsg, getMsglbl, getObject, getParameterNames, getParameterRows, getRequest, getRequestAttribute, getRequestCacheData, getRequestMethod, getRequestParameter, getRequestParameterValues, getRequestValue, getRequestValue, getRequestValues, getReservedParameter, getReservedValue, getResource, getSanitizedBodyString, getScope, getSessionAttribute, getTagName, getTransaction, getUser, getUserEditInfo, getUserInfo, isAjaxSubmitRequest, isDebug, isNoTransitionRequest, isNull, jspPrint, makeUrl, removeContextAttribute, removeObject, removeRequestAttribute, removeSessionAttribute, set, setAjaxSubmitRequest, setCaseIf, 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
クラスから継承されたメソッド jakarta.servlet.jsp.tagext.BodyTagSupport
doInitBody, getBodyContent, getPreviousOut, release, setBodyContent
クラスから継承されたメソッド jakarta.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
インタフェースから継承されたメソッド jakarta.servlet.jsp.tagext.Tag
getParent, setPageContext, setParent
-
コンストラクタの詳細
-
CommonForwardTag
public CommonForwardTag()デフォルトコンストラクター- 変更履歴:
- 6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor.
-
-
メソッドの詳細
-
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
タグリブオブジェクトをリリースします。 キャッシュされて再利用されるので、フィールドの初期設定を行います。- オーバーライド:
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
【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
【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
【TAG】非選択状態の場合にforwardを許可するかどうか[true/false]を指定します(初期値:true)。- パラメータ:
flag
- 非選択状態のforward許可 [true:不許可/false:許可]- 変更履歴:
- 4.0.0.0 (2007/11/09) 新規作成
- 説明:
- 初期値はtrueが設定されています falseにすると許可されます
-
setUseRedirectHidden
【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
【TAG】エラーメッセージにSLABELを利用するかどうか[true/false]を指定します(初期値:false)。- パラメータ:
prm
- SLABEL利用 [true:利用する/false:利用しない]- 変更履歴:
- 7.0.7.0 (2019/12/13) 新規追加
- 説明:
- 通常のエラーメッセージは、ラベル(長)が使われますが、これをラベル(短)を使いたい場合に、true にセットします。 ここでのラベル(短)は、タグ修飾なしの、ラベル(短)です。 標準はfalse:利用しない=ラベル(長)です。 true/false以外を指定した場合はfalse扱いとします。 ラベルリソースの概要説明があれば表示しますが、useSLabel="true" 時は、概要説明を表示しません。
-
toString
このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。- オーバーライド:
toString
クラス内CommonTagSupport
- 戻り値:
- このクラスの文字列表現
- このメソッドは、nullを返しません
-