どのような基本ビューIDが作成されて保存されていますか?
ビューIDは、ビューファイルのコンテキスト相対パスです。例えば。 /foo.jsp
または/foo.xhtml
。 ViewHandler
の実装は、それを作成してUIViewRoot
に格納する責任があります。
faces-config.xmlで宣言されたJSPに基づいて作成されますか?
これらは必ずしもfaces-config.xml
のどこにでも宣言する必要はありません。すべて着信要求に対して、それがFacesServlet
自体は、プレフィックスパターン(/faces/*
)またはそれぞれサフィックスパターン(*.jsf
)にマッピングされているかどうかに応じて、そのgetPathInfo()
又はgetServletPath()
方法によって下地HttpServletRequest
オブジェクトによって要求URIから抽出されます。 JSFはfaces-config.xml
で<navigation-case>
に従って新しいビューにナビゲートする必要がある場合
、新しいビューIDは、単にそれから抽出され、新しいUIViewRoot
は呼出し動作フェーズの終了によって作成されます。さもなければ、JSFは要求が発生したのと同じビューに戻ります。
基本的に、各JSPの1つのビューIDに対して作成されますか?
はい、すべてのビューには固有の識別子があります。これは基本的にWebアプリケーションのコンテキスト内の場所です。
応答を表示するためにビューIDがどのように渡されますか?リクエストパラメータに渡されますか?
UIViewRoot
に保存されています.FacesContext#getViewRoot()
で利用可能です。 renderView()
メソッドでは、ViewHandler
の実装ではgetViewId()
が呼び出されます。