正如我在this question中提到的那样,我用这种方法解决了我的问题:
在 loging.xhtm 中,例如:
<f:view locale="#{languageDetails.locale}" >
<head>
.....
<f:loadBundle basename="messages.Messages" var="msg1"/>
.....
</h:form>
</body>
</f:view>
2.在java源代码中我也做了一些改动:
public class LanguageDetails {
private static String locale = Locale.getDefault().getDisplayLanguage();
public void setLocale(String locale1) {
this.locale = locale1;
}
public synchronized String getLocale() {
return locale;
}
public synchronized String changeLanguage() {
return "changed";
}
}
但是现在我正在尝试使用相同的选项,不只是在“登录”页面中,而是在其他页面中
在其他页面中添加相同的代码不起作用,因为未调用函数setLocale
。有什么帮助吗?
提前致谢
答案 0 :(得分:0)
我意识到,放
是非常重要的<f:view locale="#{languageDetails.locale}" >
....
</f:view>
或者在每个文件中,或者只在顶级文件中。之后,在必要时添加<h:selectOneMenu>
,但要记住,您不能拥有所有<h:form>
,<a4j:form>
......等等,这会使事情变得更复杂。我把这个表单标签放在顶级文件上,现在一切正常
希望这可以帮助某人。