jsf逐一改变内容的语言

时间:2013-10-10 10:42:59

标签: ajax jsf primefaces

我希望你能帮我解决以下问题:

我有一个贯穿一系列文本的文本,这些文本有几种不同的语言翻译(该值由langId传递,最初为0)。 主JSF页面看起来像:

<ui:repeat var="entry" value="#{bean.foundEntries}">
    <ui:include src="../../templates/entryTemplate.xhtml">
        <ui:param name="langId" value="0" />
        <ui:param name="entry" value="#{entry}" />
    </ui:inculde>
</ui:repeat>

现在,每个生成的条目都为每种可用语言提供了一个按钮,可通过单击按钮来更改内容。请参阅 entryTemplate.xhtml

<ui:composition>
    <table id="whole">
        <tr><td> #{entry.content(langId)} </td></tr>
        <tr><td>
            <ui:repeat var="translation" value="#{entry.translations}">
                <p:commandLink id="button">
                    <p:ajax render=":whole" />
                    //I NEED TO SET/CHANGE SOMEHOW THE passed #{langId} to the new value #{translation.language.id}
                </p:commandLink>
        </td></tr>
    </table>
</ui:composition>

我尝试过,但它没有用。

这个问题可以解决吗?如何通过快速单击按钮来实现用户可以更改特定条目的语言?我试图避免在支持bean中保存每个Entry的语言状态......或者这是唯一的解决方案吗?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

            <h:selectOneMenu id="dropdown" value="#{UtilManagedBean.locale}" onchange="submit()">
                <f:selectItem itemValue="en_US" itemLabel="English" />
                <f:selectItem itemValue="hi_IN" itemLabel="Marathi" />
            </h:selectOneMenu>