p:selectOneMenu在更新后失败

时间:2017-10-12 08:42:21

标签: primefaces selectonemenu

我使用primafaces 6.1和selectonemenu组件来改变网站的语言。一切正常,除此之外,在我更改语言并更新负责语言更改的selectOneMenu组件并选择新的语言翻译后,组件停止工作。语言的新翻译出现在最后点击的旧翻译之下,点击操作不再有效。当我没有使用新项目标签更新负责语言更改的组件时,一切都运行良好。 吼叫是我的jsf代码:

<h:form>
                    <p:selectOneMenu value="#{worker.locale}" id="selectLanguage"
                    valueChangeListener="#{worker.onLocaleChange}">
                        <p:ajax event="change" update="@all" />
                        <f:selectItems value="#{worker.locales}" />
                    </p:selectOneMenu>
                </h:form>

支持bean:

    public void onLocaleChange(ValueChangeEvent e) {
    msg = ResourceBundle.getBundle("myApplication", LocaleUtils.toLocale(e.getNewValue().toString()));
    locales  = new HashMap<String, String>();
    locales.put(msg.getString("en_US"), "en_US");
    locales.put(msg.getString("de_DE"), "de_DE");

}

我一直在尝试使用listener =&#34;#{worker.onLocaleChange}&#34;在p:ajax中,但这也不起作用。

构建信息

    INFO: 
     

ICEsoft Technologies Inc.   ICEfaces 3.3.0   内部编号:x   建造日期:130419   修订:34423

和pom配置:

    <dependency>
        <groupId>org.glassfish</groupId>
        <artifactId>javax.faces</artifactId>
        <version>2.1.21</version>
    </dependency>

    <dependency>
        <groupId>org.glassfish.web</groupId>
        <artifactId>el-impl</artifactId>
        <version>2.2</version>
    </dependency>
    <dependency>
        <groupId>org.icefaces</groupId>
        <artifactId>icefaces-ace</artifactId>
        <version>3.3.0</version>
    </dependency>

    <dependency>
        <groupId>org.icefaces</groupId>
        <artifactId>icefaces</artifactId>
        <version>3.3.0</version>
    </dependency>

    <dependency>
        <groupId>org.icepush</groupId>
        <artifactId>icepush</artifactId>
        <version>3.3.0</version>
    </dependency>
    <dependency>
        <groupId>org.icefaces</groupId>
        <artifactId>icefaces-compat</artifactId>
        <version>3.3.0</version>
    </dependency>
    <dependency>
       <groupId>org.primefaces</groupId>
       <artifactId>primefaces</artifactId>
       <version>6.1</version>
    </dependency>

1 个答案:

答案 0 :(得分:0)

看起来有一些错误。您可以尝试启用调试消息。 我想使用javax.faces.model.SelectItem作为条目而不是von HashMap将解决问题。