【问题标题】:How to set default value of <p:selectOneMenu如何设置 <p:selectOneMenu 的默认值
【发布时间】:2015-07-30 00:25:10
【问题描述】:

我有一个包含两个 &lt;p:selectOneMenu ...&gt; 组件的 jsf。

JSF 的一部分:

<p:selectOneMenu id="speakerLanguage"
        value="#{speakerAddFormView.currentSpeaker.nativLang1}">
    <f:selectItem itemLabel="Select Language" itemValue="-1" />
    <f:selectItems value="#{speakerAddFormView.languages.entrySet()}"
            var="languages" itemLabel="#{languages.key}"
            itemValue="#{languages.value}" />
    <p:ajax listener="#{speakerAddFormView.updateStateSecondNativeLangSOM}"
            update="speakerLanguage2" />
</p:selectOneMenu>
<p:selectOneMenu id="speakerLanguage2"
        value="#{speakerAddFormView.currentSpeaker.nativLang2}"
        disabled="#{speakerAddFormView.disableSecondNativeLangSOM}">
    <f:selectItem itemLabel="Select second Language" itemValue="-1" />
    <f:selectItems value="#{speakerAddFormView.languages.entrySet()}"
            var="languages" itemLabel="#{languages.key}"
            itemValue="#{languages.value}"/>
</p:selectOneMenu>

在我的 bean 中,我有一个包含本地语言的 public static final Map&lt;String, String&gt; LANGUAGE_CODES = new TreeMap&lt;String, String&gt;();。这个 TreeMap 在 bean 初始化时被引用:

@PostConstruct
public void init() {
    this.languages = ConstantCodes.LANGUAGE_CODES;
}

当我重新加载页面时,&lt;p:selectOneMenus &gt; 都被选为默认的&lt;f:selectItem itemLabel="Select Language" itemValue="-1" /&gt;&lt;f:selectItem itemLabel="Select second Language" itemValue="-1" /&gt;

屏幕截图:

编辑:这两项是从一开始就被选中的。

有没有办法强制默认选择值?

【问题讨论】:

标签: java jsf primefaces selectonemenu


【解决方案1】:

@PostConstruct 方法中将nativLang1nativLang2 设置为-1

@PostConstruct
public void init() {
    System.out.println("initializing");
    this.languages = ConstantCodes.LANGUAGE_CODES;
    nativLang1 = "-1";
    nativLang2 = "-1";
}

【讨论】:

    猜你喜欢
    • 2011-12-31
    • 2011-07-09
    • 2012-07-31
    • 2014-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-16
    相关资源
    最近更新 更多