如何设置 <p:selectOneMenu 的默认值
How to set default value of <p:selectOneMenu
我有一个包含两个 <p:selectOneMenu ...>
组件的 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<String, String> LANGUAGE_CODES = new TreeMap<String, String>();
。此 TreeMap
在 bean 初始化时被引用:
@PostConstruct
public void init() {
this.languages = ConstantCodes.LANGUAGE_CODES;
}
当我重新加载页面时,两个 <p:selectOneMenus >
都被选中,而不是默认的 <f:selectItem itemLabel="Select Language" itemValue="-1" />
或 <f:selectItem itemLabel="Select second Language" itemValue="-1" />
。
屏幕截图:
编辑:这两项从头开始选择。
有没有办法强制选择默认值?
在 @PostConstruct
方法中将 nativLang1
和 nativLang2
设置为 -1
。
@PostConstruct
public void init() {
System.out.println("initializing");
this.languages = ConstantCodes.LANGUAGE_CODES;
nativLang1 = "-1";
nativLang2 = "-1";
}
我有一个包含两个 <p:selectOneMenu ...>
组件的 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<String, String> LANGUAGE_CODES = new TreeMap<String, String>();
。此 TreeMap
在 bean 初始化时被引用:
@PostConstruct
public void init() {
this.languages = ConstantCodes.LANGUAGE_CODES;
}
当我重新加载页面时,两个 <p:selectOneMenus >
都被选中,而不是默认的 <f:selectItem itemLabel="Select Language" itemValue="-1" />
或 <f:selectItem itemLabel="Select second Language" itemValue="-1" />
。
屏幕截图:
编辑:这两项从头开始选择。
有没有办法强制选择默认值?
在 @PostConstruct
方法中将 nativLang1
和 nativLang2
设置为 -1
。
@PostConstruct
public void init() {
System.out.println("initializing");
this.languages = ConstantCodes.LANGUAGE_CODES;
nativLang1 = "-1";
nativLang2 = "-1";
}