在我的应用程序中,在Login page上,页面顶部有一个语言选项。

如果我选择中文,一切都会完美地翻译成中文。

如果我单击Refresh按钮或Ctrl + R,页面仍然是中文的。但是,如果我打开另一个选项卡,转到同一个URL,即使语言选项仍然显示选择了Chinese,所有内容都将恢复为英语。

但是,如果您单击About us或Methodology,下一页将再次以中文显示。
如果你能告诉我我做错了什么,我将不胜感激。
诚挚的问候,
发布于 2012-06-05 20:45:12
显然,在如何设置UIViewRoot的区域设置方面存在问题。
这应该由<f:view locale>在你的主模板中完成,也许你对所有其他页面都有这个权限,但对主页不是这样。
例如。
<!DOCTYPE html>
<html lang="#{localeBean.language}"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
...
>
<f:view locale="#{localeBean.locale}">
<h:head>
...
</h:head>
<h:body>
...
</h:body>
</f:view>
</html>其中#{localeBean}是一个看起来与this相似的@SessionScoped。
顺便说一句,这个问题表明页面不共享公共的主模板,并且您在到处复制XHTML代码。我也会努力做到这一点:)
https://stackoverflow.com/questions/10894758
复制相似问题