好奇心からJSF2.0アプリケーションでロケールを操作しているときに、のメソッドの実装ロジックを読み取ろうとしましgetRequestLocale()たExternalContext。
javax.faces.context.ExternalContext抽象クラスです。私はそれを見つけました
com.sun.faces.context.ExternalContextImpljavax.faces.context.ExternalContextWrappercom.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。
今ここで私はトラックを失いました。実際の実装を見つけることができるクラスを見つけることができません。誰かが知っているなら、私が理解するのを手伝ってください。