出于好奇,在我的 JSF 2.0 应用程序中使用 Locale 时,我尝试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
.
现在我在这里迷失了方向。我无法找到在哪个类中可以找到实际的实现。如果有人知道,请帮助我理解。