パッケージ org.opengion.hayabusa.taglib

# クラス ForwardTag

java.lang.Object
jakarta.servlet.jsp.tagext.TagSupport
jakarta.servlet.jsp.tagext.BodyTagSupport
org.opengion.hayabusa.taglib.CommonTagSupport
org.opengion.hayabusa.taglib.ForwardTag

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

public class ForwardTag extends CommonTagSupport
制御を別の画面にフォワードする場合に使用するタグです(通常は、entry.jsp で使用します)。 フォワード時に、指定の引数をセットできます。

関連項目:
  - 直列化された形式
機能分類
  画面制御
形式ｻﾝﾌﾟﾙ:
  ●形式：<og:forward page="…" gamenId="[…]" /> ●body：なし ●Tag定義： <og:forward gamenId 【TAG】gamenId 属性を登録します page ○【TAG】転送先URLを指定します(必須)。 keys 【TAG】キーを CSV形式でセットします vals 【TAG】キーに対応する値を CSV形式でセットします dbkeys 【TAG】DBキーをCSV形式でセットします scope 【TAG】キャッシュする場合のスコープ[request/page/session/application]を指定します(初期値:session) useRedirect 【TAG】response.sendRedirect するかどうか[true/false]を指定します(初期値:false) contentType 【TAG】response.sendRedirect する場合、ContentType を設定します(初期値:未指定) 7.1.0.0 (2020/01/20) target 【TAG】サブミット先の文書を表示させるフレーム、またはウィンドウの名前を指定します filename 【TAG】ファイル転送時にファイル名の別名を指定します(初期値:null) disposition 【TAG】ファイル転送時のヘッダー情報として、Content-Dispositionに設定する値を指定します(初期値:CONTENT_DISPOSITION[=])。 noTransition 【TAG】(通常は使いません )画面遷移を行わない形式の登録方法を使用するかを指定します useAjaxSubmit 【TAG】(通常は使いません) ajaxを利用したsubmitを利用するかどうかを指定します redirectEncode 【TAG】(通常は使いません) useRedirect=true時に 日本語を含む転送先(page)をバイナリ変換するときのコード名[UTF-8/Windows-31J]など(初期値:null) forceEnc 【TAG】(通常は使いません) valsの値が[で開始している場合でもURLEncodeを通すかを設定します(初期値:false) 5.10.15.3 (2019/09/27) caseKey 【TAG】このタグ自体を利用するかどうかの条件キーを指定します(初期値:null) caseVal 【TAG】このタグ自体を利用するかどうかの条件値を指定します(初期値:null) caseNN 【TAG】指定の値が、null/ゼロ文字列 でない場合(Not Null=NN)は、このタグは使用されます(初期値:判定しない) caseNull 【TAG】指定の値が、null/ゼロ文字列 の場合は、このタグは使用されます(初期値:判定しない) caseIf 【TAG】指定の値が、true/TRUE文字列の場合は、このタグは使用されます(初期値:判定しない) debug 【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false) /> ※ 6.4.3.0 (2016/02/05) disposition 追加 以前は、inline 固定でしたが、引数で指定できるようにします。 ●使用例 <og:forward page = "転送先URLを指定します(必須)。" dbkeys = "DBキーをCSV形式でセットします。" keys = "キーを CSV形式でセットします。" vals = "キーに対応する値を CSV形式でセットします。" scope = "キャッシュする場合のスコープ(request,page,session,application)を指定します(初期値:session)。" gamenId = "gamenId 属性を登録します。" useRedirect = "useRedirect 属性を登録します。" filename = "ファイル転送時にファイル名を指定する場合に設定します。" target = "taregt 属性を登録します。" noTransition = "実際にforwardせずに、id="forwardUrl"属性のbody部分に遷移先のURLを出力します。(画面遷移なしモード時に使用します)" />
導入されたバージョン:
  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`

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

  コンストラクタ
  コンストラクタ
  説明
  `ForwardTag()`
  デフォルトコンストラクター

- ## メソッドの概要

  修飾子とタイプ
  メソッド
  説明
  `int`
  `doEndTag()`
  Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
  `protected void`
  `release2()`
  タグリブオブジェクトをリリースします。
  `void`
  `setContentType(String type)`
  【TAG】response.sendRedirect する場合、ContentType を設定します(初期値:未指定)。
  `void`
  `setDbkeys(String key)`
  【TAG】DBキーをCSV形式でセットします。
  `void`
  `setDisposition(String dispos)`
  【TAG】ファイルダウンロードさせる場合に、Content-Disposition に設定する値 (初期値:CONTENT_DISPOSITION[=])。
  `void`
  `setFilename(String name)`
  【TAG】ファイル転送時にファイル名の別名を指定します(初期値:null)。
  `void`
  `setForceEnc(String flg)`
  【TAG】valsの値が[で開始している場合でもURLEncodeを通すかを設定します(初期値:false)。
  `void`
  `setGamenId(String id)`
  【TAG】画面ID を指定します。
  `void`
  `setKeys(String key)`
  【TAG】キーを CSV形式でセットします。
  `void`
  `setNoTransition(String noTrnstn)`
  【TAG】(通常は使いません)画面遷移を行わない形式の登録方法を使用するかを指定します。
  `void`
  `setPage(String url)`
  【TAG】転送先URLを指定します。
  `void`
  `setRedirectEncode(String redEnc)`
  【TAG】(通常は使いません)useRedirect=true時に 日本語を含む転送先(page)をバイナリ変換するときのコード名[UTF-8/Windows-31J]など(初期値:null)。
  `void`
  `setTarget(String name)`
  【TAG】サブミット先の文書を表示させるフレーム、またはウィンドウの名前を指定します。
  `void`
  `setUseAjaxSubmit(String ajaxSubmit)`
  【TAG】(通常は使いません)ajaxを利用したsubmitを利用するかどうか[true:利用する/false:利用しない]を指定します。
  `void`
  `setUseRedirect(String flag)`
  【TAG】response.sendRedirect するかどうか[true/false]を指定します(初期値:false)。
  `void`
  `setUseURLCheck(String flag)`
  【TAG】リンクアドレスにURLチェック用の確認キーを付加するかどうか[true/false]を指定します。
  `void`
  `setVals(String val)`
  【TAG】キーに対応する値を CSV形式でセットします。
  `String`
  `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`

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

  - ### ForwardTag

    public ForwardTag()
    デフォルトコンストラクター
    変更履歴:
      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`
    戻り値:
      後続処理の指示
    変更履歴:
      2.1.0.0 (2002/10/11) 戻り値の先頭の "?" を追加しないように変更。, 3.0.1.3 (2003/03/11) 直接転送した場合の整合性を取る為の対応。, 3.1.1.2 (2003/04/04) Tomcat4.1 対応。release2() を doEndTag()で呼ぶ。, 3.1.2.0 (2003/04/07) ソースコード中の固定値を、定義ファイルを使用するように変更する。, 3.5.4.9 (2004/02/25) gamenId を指定して、フォワードできるようにします。, 3.5.6.6 (2004/08/23) useRedirect 属性を追加します。, 4.3.3.0 (2008/10/01) noTransition 属性を追加します。, 4.3.7.1 (2009/06/08) target属性に絶対パス及び"_"で始まる予約語を指定できるようにします。, 4.3.8.0 (2009/08/01) useAjaxSubmit対応、noTransition値取得メソッド名変更, 5.0.0.4 (2009/10/01) 画面遷移なし登録で戻った際に最終行が選択されるバグを修正, 5.1.3.0 (2010/02/01) noTransition、ajaxSubmitのコントロールは、requestで行う。, 5.1.6.0 (2010/05/01) IE以外は、MIMEエンコードする。(RFC2231に従う), 5.1.7.0 (2010/06/01) 画面IDをパラメーターに付加する。, 5.1.7.0 (2010/06/01) 遷移先がJSP以外の場合は、フォワードページのキャッシュをしない。, 5.1.8.0 (2010/07/01) httpが指定されていた場合に、自身の画面IDが付加されるバグを修正, 5.3.8.0 (2011/08/01) ファイル名指定でIEの場合、URLエンコードすると途中で切れるため(IE7のバグ)、Shift_JIS(WIndows-31J)で直接指定する。, 5.6.5.0 (2013/06/07) redirectEncode 属性を追加します。, 5.7.4.1 (2014/03/14) 日本語ファイル名が正しく処理できない件を修正(IE11のMSIE関連), 6.0.2.5 (2014/10/31) debug="true" を設定したときは、forward も sendRedirect も行わない。, 6.3.4.0 (2015/08/01) caseKey,caseVal,caseNN,caseNull,caseIf 属性対応, 6.4.0.2 (2015/12/11) 飛び先の画面が見つからない(アクセス権がない)場合、転送先URL を null にする。, 6.9.0.0 (2018/01/31) Windows10 の Edge で、ﾌｧｲﾙの文字化け対応(FileDownload servletと同じ対応を入れます)。, 6.9.8.0 (2018/05/28) debug="true" 時は、画面遷移は行わない。, 5.10.11.0 (2019/05/03) URLチェック対応を追加, 7.1.0.0 (2020/01/20) contentType 追加。

  - ### release2

    protected void release2()
    タグリブオブジェクトをリリースします。 キャッシュされて再利用されるので、フィールドの初期設定を行います。
    オーバーライド:
      `release2` クラス内 `CommonTagSupport`
    変更履歴:
      2.0.0.4 (2002/09/27) カスタムタグの release() メソッドを、追加, 3.1.1.2 (2003/04/04) Tomcat4.1 対応。release2() を doEndTag()で呼ぶ。, 3.5.4.9 (2004/02/25) 画面ID属性(gamenId)を追加, 3.8.5.0 (2006/03/06) filename 属性を追加します。, 4.3.3.0 (2008/10/01) noTransition 属性を追加します。, 5.6.5.0 (2013/06/07) redirectEncode 属性を追加します。, 6.4.3.0 (2016/02/05) disposition属性、新規追加。, 5.10.11.0 (2019/05/03) urlCheck対応, 5.10.15.3 (2019/09/27) forceEnc追加, 7.1.0.0 (2020/01/20) contentType 追加。

  - ### setPage

    public void setPage(String url)
    【TAG】転送先URLを指定します。
    パラメータ:
      `url` - 転送先URL
    説明:
      転送先URLを指定します。

  - ### setDbkeys

    public void setDbkeys(String key)
    【TAG】DBキーをCSV形式でセットします。
    パラメータ:
      `key` - DBキー(CSV形式)
    説明:
      URI の引数にセットするキーを CSV形式でセットします。 ここの指定は、DBTableModel 上のデータを取り込みます。

  - ### setKeys

    public void setKeys(String key)
    【TAG】キーを CSV形式でセットします。
    パラメータ:
      `key` - キー(CSV形式)
    説明:
      URI の引数にセットするキーを CSV形式でセットします。

  - ### setVals

    public void setVals(String val)
    【TAG】キーに対応する値を CSV形式でセットします。
    パラメータ:
      `val` - 値(CSV形式)
    変更履歴:
      3.5.6.2 (2004/07/05) CommonTagSupport#getCSVParameter を使用
    説明:
      URI の引数にセットする値を CSV形式でセットします。 分解方法は、CSV変数を先に分解してから、getRequestParameter で値を取得します。 こうしないとデータ自身にカンマを持っている場合に分解をミスる為です。

  - ### setGamenId

    public void setGamenId(String id)
    【TAG】画面ID を指定します。
    パラメータ:
      `id` - 画面ID
    関連項目:
      - `setUseRedirect(String)`
    変更履歴:
      3.5.4.9 (2004/02/25) 新規追加
    説明:
      gamenId 属性は、画面IDをキーに、実アドレスを求めるのに使用します。 画面IDが指定された場合は、実アドレスに変換する。指定されない場合は、 page 属性をそのままリダイレクトアドレスとします。 gamenId を指定した場合は、このuseRedirect属性に関係なく、Redirect されます。

  - ### setUseRedirect

    public void setUseRedirect(String flag)
    【TAG】response.sendRedirect するかどうか[true/false]を指定します(初期値:false)。
    パラメータ:
      `flag` - リダイレクト転送か [true:redirect/false:forwrd]
    関連項目:
      - `setGamenId(String)`
    変更履歴:
      3.5.6.6 (2004/08/23) 新規追加
    説明:
      useRedirect 属性は、URLの転送方式を指定できます。 通常は、pageContext.forward しますが、この属性に true を 設定すると、response.sendRedirect します。 gamenId を指定した場合は、この属性に関係なく、Redirect されます。 初期値は、false (forward) です。

  - ### setContentType

    public void setContentType(String type)
    【TAG】response.sendRedirect する場合、ContentType を設定します(初期値:未指定)。
    パラメータ:
      `type` - ContentType属性
    関連項目:
      - `setUseRedirect(String)`
    変更履歴:
      7.1.0.0 (2020/01/20) contentType 追加。
    説明:
      useRedirect="true" の場合のみ、この属性は有効になります。 例）contentType="text/plain; charset=UTF-8" 初期値は、未指定です。

  - ### setTarget

    public void setTarget(String name)
    【TAG】サブミット先の文書を表示させるフレーム、またはウィンドウの名前を指定します。
    パラメータ:
      `name` - フレーム名(ターゲット属性)
    変更履歴:
      3.8.0.4 (2005/08/08) 新規追加
    説明:
      サブミット先のフレーム名(ターゲット属性)を設定します。

  - ### setFilename

    public void setFilename(String name)
    【TAG】ファイル転送時にファイル名の別名を指定します(初期値:null)。
    パラメータ:
      `name` - ファイル名
    説明:
      ファイルを転送する場合に、オープンさせるファイル名を指定します。 指定しない場合は、フォラード前に呼び出されたアドレスがそのまま使用されます。 ※ useRedirect="true"時(つまり、リダイレクトする場合)は、ファイル名の指定が できません。(少なくとも私の知識では出来ませんでした。)

  - ### setDisposition

    public void setDisposition(String dispos)
    【TAG】ファイルダウンロードさせる場合に、Content-Disposition に設定する値 (初期値:CONTENT_DISPOSITION[=])。
    パラメータ:
      `dispos` - Content-Dispositionに設定する値(inline/attachment)
    変更履歴:
      6.4.3.0 (2016/02/05) disposition属性、新規追加。
    説明:
      inline(そのまま開く) を指定すると、PDF などは直接ダウンロードが始まります。 attachment(ダウンロードダイアログを表示する) を指定すると、保存のダイアログを表示しますが EXCEL などの場合、inline にしても、ダイアログが表示され、開くをクリックしても ダウンロードが始まらなかったり、EXCELが開いたあと、ブラウザの操作が出来なくなったり、 よくわからないため、選択できるようにします。 (初期値:システム定数のCONTENT_DISPOSITION[=])。

  - ### setNoTransition

    public void setNoTransition(String noTrnstn)
    【TAG】(通常は使いません)画面遷移を行わない形式の登録方法を使用するかを指定します。
    パラメータ:
      `noTrnstn` - 画面遷移を行わない登録か [true:画面遷移を伴わない/false:伴う]
    変更履歴:
      4.3.3.0 (2008/10/01) 新規追加, 5.1.3.0 (2010/02/01) noTransition、ajaxSubmitのコントロールは、requestで行う。
    説明:
      画面遷移なしの登録を行うかどうかを指定します。 trueが指定された場合、forwardタグでは、実際の画面遷移は行わずに、forward先の URLを
      [URL]
      の形でHTMLとして出力し、JavaScript側で 実際の画面遷移を発生させます。target属性は
      [TARGET]
      で 出力されます。 この値は、og:headタグで設定値、または前画面からの値を継承するため、通常、この属性ではセットしません。

  - ### setUseAjaxSubmit

    public void setUseAjaxSubmit(String ajaxSubmit)
    【TAG】(通常は使いません)ajaxを利用したsubmitを利用するかどうか[true:利用する/false:利用しない]を指定します。
    パラメータ:
      `ajaxSubmit` - ajaxを利用したsubmitを利用するか [true:利用する/false:利用しない]
    変更履歴:
      4.3.8.0 (2009/08/01) 新規追加, 5.1.3.0 (2010/02/01) noTransition、ajaxSubmitのコントロールは、requestで行う。
    説明:
      ajaxを利用したSubmit処理を行うかどうかを指定します。 setNoTransitionをtrueにした場合と同様の処理を行います。 (forwardせずにURLをDIVタグで出力する) この値は、og:headタグで設定値、または前画面からの値を継承するため、通常、この属性ではセットしません。

  - ### setRedirectEncode

    public void setRedirectEncode(String redEnc)
    【TAG】(通常は使いません)useRedirect=true時に 日本語を含む転送先(page)をバイナリ変換するときのコード名[UTF-8/Windows-31J]など(初期値:null)。
    パラメータ:
      `redEnc` - 転送先(page)の変換文字コード名 (UTF-8/Windows-31Jなど)
    変更履歴:
      5.6.5.0 (2013/06/07) 新規追加
    説明:
      日本語ファイル名を持つ URL を useRedirect で転送する場合に、転送先(page)をバイナリ変換しないと、転送できないケースがあります。 このあたりは、ブラウザにも依存するので、既存の処理に影響しない様に、このパラメータを使用する場合のみ 処理を実行します。 IEでの日本語ファイル転送で、うまくいかない場合の、暫定処置です。 IEの場合は、redirectEncode="UTF-8" で、日本語ファイルを転送できます。 ただし、useRedirect=true時に filename 属性によるファイル名の書き換え処理はできませんので、ご注意ください。 初期値は、null で、バイナリエンコードしません。（互換性ありの状態です。）

  - ### setUseURLCheck

    public void setUseURLCheck(String flag)
    【TAG】リンクアドレスにURLチェック用の確認キーを付加するかどうか[true/false]を指定します。
    パラメータ:
      `flag` - 暗号化するかかどうか [true:暗号化する/false:しない]
    関連項目:
      - `URLCheckFilter`
    変更履歴:
      5.10.11.0 (2019/05/03) 新規追加
    説明:
      この属性は、URLCheckFilter(org.opengion.hayabusa.filter.URLCheckFilter)と合わせて使用します。 trueが指定された場合、リンクURLのパラメーターに、URL確認用のパラメーターが出力されます。 このパラメーターを、URLCheckFilterが復号化し、正式なアクセスであるかどうかの判定を行います。 初期値は、 システムリソースのLINK_URL_CHECK です。

  - ### setForceEnc

    public void setForceEnc(String flg)
    【TAG】valsの値が[で開始している場合でもURLEncodeを通すかを設定します(初期値:false)。
    パラメータ:
      `flg` - URLEncodeを通す場合は、trueをｾｯﾄ
    変更履歴:
      5.10.15.3 (2019/09/27) forceEnc追加
    説明:
      テーブルモデルの値の変換のため、通常は先頭が[の場合はエンコードがかかりません。 強制的にかける場合にtrueにします。

  - ### toString

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