Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 使用i18n在JSF应用程序中重新加载数据库的策略_Jsf 2_Internationalization_Primefaces - Fatal编程技术网

Jsf 2 使用i18n在JSF应用程序中重新加载数据库的策略

Jsf 2 使用i18n在JSF应用程序中重新加载数据库的策略,jsf-2,internationalization,primefaces,Jsf 2,Internationalization,Primefaces,我正在用PrimeFaces/JSF开发一个web应用程序 它具有用于语言选择的典型组合 当有人点击组合键时,将触发一个valueChangeListener 该侦听器(changeLocaleListener)更改视口区域设置,因此可以加载适当的message bundle.properties文件 这与预期的一样正常,但是,我不清楚为了从数据库中再次加载依赖于i18n的页面的实际内容而采取的策略 我的意思是,如何调用适当的actionListeners方法来刷新页面 想象一下以下场景: 您将

我正在用PrimeFaces/JSF开发一个web应用程序

它具有用于语言选择的典型组合

当有人点击组合键时,将触发一个valueChangeListener

该侦听器(changeLocaleListener)更改视口区域设置,因此可以加载适当的message bundle.properties文件

这与预期的一样正常,但是,我不清楚为了从数据库中再次加载依赖于i18n的页面的实际内容而采取的策略

我的意思是,如何调用适当的actionListeners方法来刷新页面

想象一下以下场景:

  • 您将到达主页(选择西班牙语作为默认语言)

  • 将显示最新新闻和最新事件的列表(西班牙语)

  • 点击其中一条新闻,进入详细的新页面(西班牙语)

  • 在组合框中选择英语,然后从数据库中重新加载所选新项目的详细信息并以英语显示

  • 有没有一种方法可以根据用户所处的实际页面自动执行该操作并控制应该调用哪些dao方法

    <p:selectOneMenu 
        value="#{i18nCtrl.mdl.local}" 
        var="loc"
        onchange="$('#form').submit()" 
        converter="localConverter" 
        valueChangeListener="#{i18nCtrl.changeLocaleListener}" >
        ...
    
    
    ...
    

    谢谢

    你能把当前的URL给POJO并从中重定向吗?你能详细说明一下解决方案吗?我知道viewRoot.getViewId()可以获取实际的页面url,但我不知道该怎么做我对这个很陌生。我认为应该有更聪明的人提供建议。但是,如果您可以获取页面url和更改的语言,我只需按照new lang从DB中选择相同的数据,显示此西班牙语页面。但我认为,有更好的方法可以做到这一点,我也想知道。这里需要BalusC反馈:-/