My favorites | Sign in
t-2
Project Home Downloads Wiki Issues Source
READ-ONLY: This project has been archived. For more information see this post.
Search
for
API_Navigation  

en , ja
Updated Mar 24, 2011 by shinpei.ohtani@gmail.com

Navigation

NavigationクラスはT2のアクションメソッドの戻り値のクラスです. 以下のような役割を担います.
  • 次の遷移先を決定する
  • 遷移の方法を決定する

現在準備されているNavigationの実装クラスは下記のようになります.

Navigationクラス名 説明
org.t2framework.t2.navigation.Forward フォワード処理
org.t2framework.t2.navigation.Redirect リダイレクト処理
org.t2framework.t2.navigation.Direct 渡されたデータを直接HttpServletResponseに書き込む
org.t2framework.t2.navigation.Json 渡されたデータをJSON形式にしてHttpServletResponseに書き込む
org.t2framework.t2.navigation.Proceed 1リクエスト内で、擬似的にリダイレクトする
org.t2framework.t2.navigation.PassThrough サーブレットフィルタのFilterChain.doFilter()
org.t2framework.t2.navigation.NoOperation 何もしない.サーブレットフィルタのFilterChain.doFilter()の呼び出しもしない.
org.t2framework.t2.format.amf.navigation.AmfResponse FlexなどのAMF3通信に対してレスポンスを送る

Forward

Forwardは、フォワード処理を行います.ServletのRequestDispatcher#forwardと同等です. リクエストパラメータがある場合にはクエリストリングにしてフォワードします.

使い方

  • Forward#to(String)
    • 遷移先パスにフォワードします.
  • Forward#to(Class)
    • 遷移先を示したClassの@ForwardToの値でフォワードします.Classには@ForwardToがついている必要があります.

Redirect

Redirectはリダイレクト処理を行うためのクラスです. HttpServletResponse#sendRedirect相当です.

使い方

  • Redirect#to(String)
    • 遷移先パスにリダイレクトします.
  • Redirect#to(Class)
    • 遷移先を示したClassの@Pageの値にリダイレクトします
  • Redirect#toOuterUrl(String)
    • 遷移先の外部サイトにリダイレクトします.
  • Redirect#toOuterContext(String)
    • 遷移先の別コンテキストにリダイレクトします.

Direct

Directは、ファイルなどをレスポンスに直接書くためのNavigationです.

使い方

  • Direct#from(InputStream)
    • InputStreamをレスポンスに直接書き込みます.
  • Direct#from(File)
    • Fileをレスポンスに直接書き込みます.
  • Forward#to(byte)
    • byteをレスポンスに直接書き込みます.このメソッドはパフォーマンス観点で推奨していません.

Json

Jsonは、オブジェクトをJSON形式で送りかえるNavigationです.

使い方

  • Json#convert(Object)
    • オブジェクトをJSON形式に変換して返します.

仕様

  • 内部的にはcommonsのJsonSerializerを使います.
  • コンテントタイプ設定はtext/javascript; charset=utf-8となります.
  • ファイルで書き込む場合もUTF-8で出力します.

Proceed

Proceedは擬似リダイレクトのNavigationです. 擬似リダイレクトとは、あたかもリダイレクトのようにみせかけるフォワード処理のことで、携帯環境などリダイレクトが許可されない・許可されにくい環境で使います.

使い方

  • Proceed#proceed(path)
    • 遷移先パスにプロシードします.
保持したいアトリビュート、パラメータはそれぞれaddAttribute|addParamを使ってストアします.

仕様

  • HttpServletRequestがプロシード実行時にHttpServletRequestWrapperの実装に置き換わります

PassThrough

PassThroughは、T2のFilter処理をパスして、次のFilter/Serverに処理を渡すNavigationです。

使い方

  • PassThrough#pass()
    • T2の処理をpassします.例えばT2で"hoge.jsp"のリクエストを受けた場合にpassすると、そのままJSP実行Servletが処理を行います.

NoOperation

NoOperationは、T2のFilter処理をパスして、かつ次のFilter/Serverの処理を呼び出さないNavigationです。

使い方

  • NoOperation#noOp()
    • 処理をすべてパスします.T2以外の後続のフィルタ、サーブレットがあればそちらへ処理がうつります.

AmfResponse

AmfResponseは、FlexなどのAMF3通信を行うクライアントに対して、AMF3のレスポンスを返すためのNavigationです.

使い方

  • AmfResponse#to(Object)
    • クライアントに、引数のObjectを返します.
  • AmfResponse#to(Object,Class)
    • クライアントに、引数のObjectを返します.第2引数のClassは、第一引数のObjectをどのクラスとして扱ってほしいかを指定します.
    • 通常このクラス指定は必要ありませんが、第一引数がnullの場合に、nullをNumberとして扱ってほしい場合などにto(null,Double.class)などとします.

TOPに戻る

Powered by Google Project Hosting