3

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

语言选项

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

中国人

如果我点击Refresh按钮 或Ctrl + R,页面仍然是中文的。但是,如果我打开另一个指向相同 URL 的选项卡,即使语言选项仍然显示Chinese已选择,一切都会再次变为英语。

又是英语

但是,如果您单击About usMethodology,则下一页将再次显示为中文。

如果您能告诉我我在这里做错了什么,我将不胜感激。

最好的祝福,

4

1 回答 1

2

您如何设置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}有一个和这个@SessionScoped相似的。

顺便说一下,这个问题表明这些页面不共享一个公共主模板,并且您正在到处复制 XHTML 代码。我也会努力的:)

于 2012-06-05T12:45:12.370 回答