好奇心からJSF2.0アプリケーションでロケールを操作しているときに、のメソッドの実装ロジックを読み取ろうとしましgetRequestLocale()
たExternalContext
。
javax.faces.context.ExternalContext
抽象クラスです。私はそれを見つけました
com.sun.faces.context.ExternalContextImpl
javax.faces.context.ExternalContextWrapper
com.sun.faces.config.InitFacesContext$ServletContextAdapter
このクラスを拡張します。
それらの中で、クラスのこのメソッドの実装ServletContextAdapter
はnullを返します。だから私には役に立たないと思います。
でのこのメソッドの実装ExternalContextImpl
は次のとおりです。
public Locale getRequestLocale(){
return this.request.getLocale();
}
そして、次のExternalContextWrapper
とおりです。
public Locale getRequestLocale() {
return getWrapped().getRequestLocale();
}
による実装でExternalContextWrapper
はgetWrapped()
、インスタンスを返しますExternalContext
。ExternalContextImpl
実は反対かもしれませんね。
そして、このメソッドの実装でExternalContextImpl
this.request
は、実際にはjavax.servlet.ServletRequest
です。
今ServletRequest
はによって実装されているインターフェイスです
javax.servlet.ServletRequestWrapper
と拡張javax.servlet.http.HttpServletRequest
。
このメソッドはで見つかりませんでした。実装ではHttpServletRequest
、のメソッドServletRequestWrapper
と同じですExternalContextImpl
。
今ここで私はトラックを失いました。実際の実装を見つけることができるクラスを見つけることができません。誰かが知っているなら、私が理解するのを手伝ってください。