2015-07-30 2 views
0

У меня есть jsf, содержащий два компонента <p:selectOneMenu ...>.Как установить значение по умолчанию <p: selectOneMenu

Часть 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> 

В моем боба у меня есть public static final Map<String, String> LANGUAGE_CODES = new TreeMap<String, String>();, содержащие собственные языки. Этот TreeMap ссылается при инициализации компонента в:

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

Когда я перезагрузить страницу, оба <p:selectOneMenus > являются seleected не по умолчанию <f:selectItem itemLabel="Select Language" itemValue="-1" /> или <f:selectItem itemLabel="Select second Language" itemValue="-1" />.

экрана Снип: Wrong selected entries

Edit: Эти две позиции выбраны с самого начала. Selected Items

Есть ли способ заставить выбранное по умолчанию значение?

+2

возможно дубликат [значение по умолчанию для набора selectonemenu] (http://stackoverflow.com/questions/20048994/set-default-value-for-selectonemenu) – Shahzeb

+0

вы используете сеанс области действия боб? –

ответ

1

Установите nativLang1 и nativLang2 на номер -1 в вашем @PostConstruct методе.

@PostConstruct 
public void init() { 
    System.out.println("initializing"); 
    this.languages = ConstantCodes.LANGUAGE_CODES; 
    nativLang1 = "-1"; 
    nativLang2 = "-1"; 
} 
Смежные вопросы