我正面臨着本地化的奇怪行爲。我的應用中有兩種語言 - 英語和斯洛伐克語。在我的本地Glassfish切換區域設置完美。但是在Jelastic Glassfish上部署的相同應用程序始終使用英語。切換區域設置不起作用。我調試了遠程應用程序和facescontext(FacesContext.getCurrentInstance()。getViewRoot()。getLocale()和FacesContext.getCurrentInstance()。getExternalContext()。getRequestLocale())返回正確的sk語言環境,但頁面仍然是英語。在語言菜單中選擇斯洛伐克(第二選項)!Glassfish集羣上的JSF頁面總是用英文表示
這兩個玻璃魚都在版本3.1.2.2與Mojarra 2.2.7和Primefaces 5.0,在JDK7上運行。當地GF運行Win7上,遙控器上的Linux(CentOS的?)和它的集羣(也許這是什麼原因?)
面孔,conf.xml中
<locale-config>
<default-locale>en</default-locale>
<supported-locale>sk</supported-locale>
</locale-config>
<resource-bundle>
<base-name>Bundle</base-name>
<var>bundle</var>
</resource-bundle>
login.xhtml
<f:view locale="#{loginBean.locale}">
...
<p:outputLabel value="#{bundle.language}: "/>
<p:selectOneMenu value="#{loginBean.language}" id="loginLocale">
<f:selectItem itemValue="en" itemLabel="English" />
<f:selectItem itemValue="sk" itemLabel="Slovensky" />
<p:ajax update="@all"/>
</p:selectOneMenu>
...
</f:view>
LoginBean.java
@ManagedBean(name = "loginBean")
@SessionScoped
public class LoginBean implements Serializable{
private Locale locale = FacesContext.getCurrentInstance().getExternalContext().getRequestLocale();
...
public Locale getLocale() {
return locale;
}
public String getLanguage() {
return locale.getLanguage();
}
public void setLanguage(String language) {
locale = new Locale(language);
FacesContext.getCurrentInstance().getViewRoot().setLocale(locale);
}
}
感謝您的幫助
Michal