2015-04-30 7 views
0

Я хотел бы выбрать значение из списка в combobox (selectonemenu), но я хочу сохранить «-Mind-» как первый selectitem, а затем другие selectitems, когда я откройте поле со списком. Я хочу только выбрать элемент в фоновом режиме, когда страница загружается, элемент должен быть выбран.Первый выбранный элемент в combobox (selectOneMenu)

Вот мой код:

<p:selectOneMenu value="#{indexBean.filter.ev}" converter="javax.faces.Integer" style="width: 70px"> 
    <f:selectItem itemLabel="-Mind-" itemValue="#{null}"/> 
    <f:selectItems value="#{indexBean.evLista}" var="ev" itemLabel="#{ev}" itemValue="#{ev}"/> 
</p:selectOneMenu> 

И боб:

public List<Integer> getEvLista() { 
    for (int i = 2015; i >= 2014; i--) { 
     evek.add(i); 
    } 
    return evek; 
} 

Я хочу быть выбран например: 2015 года у меня нет @PostConstruct метод еще, но возможно, что это решение. Вы можете мне помочь? Благодаря!

+0

У меня такое впечатление, что вы хотите, уже выбранный элемент будет выбран даже после того, как запрос синхронным GET отправляется. Единственный вариант в этом случае - сохранить выбранный элемент ('value =" # {indexBean.filter.ev} ') в сеансе пользователя. Кажется, вы пытаетесь разобраться с выбором даты (времени). Почему бы не использовать календарь, предоставленный PrimeFaces в этом случае. Да, '' создает впечатление использования PrimeFaces. – Tiny

ответ

0

Добавить valueChangeListener в p:selectOneMenu и получить/установить выбранное значение как отдельное свойство.

<p:selectOneMenu value="#{indexBean.selectedYear}" converter="javax.faces.Integer" 
    style="width: 70px" valueChangeListener="#{indexBean.yearValueChangeListener}"> 
    <f:selectItem itemLabel="-Mind-" itemValue="#{null}"/> 
    <f:selectItems value="#{indexBean.evLista}" var="ev" 
     itemLabel="#{ev}" itemValue="#{ev}"/> 
</p:selectOneMenu> 

Bean:

int selectedYear = 0; 

public int getSelectedYear(){ 
    return selectedYear; 
} 

public void setSelectedYear(int selectedYear){ 
    this.selectedYear = selectedYear; 
} 

public void yearValueChangeListener(ValueChangeEvent vce) { 
    if (vce.getNewValue() != null) { 
     selectedYear = Integer.parseInt(vce.getNewValue().toString()); 
    } 
} 
+0

hmm .. Я добавил valueChangeListener и метод yearValueChangeListener. (getter setter не важен, потому что я использую lombok) , Я знаю, что вы хотите сделать, но это не работает./Я также попытался использовать метод yearValueChangeListener: 'if (vce.getNewValue()! = Null || vce.getNewValue()! = " «) , но это тоже не сработало. Больше идей? –

+0

Тогда чего вы хотите достичь? –

+0

Я хотел выбрать элемент в выпадающем списке (так что« -Mind- »будет отображаться при загрузке страницы, мне нужно сначала показать «2015»), но я хочу сохранить секвенцию предметов. Последовательность: «-Mind», «2015», «2014» –

Смежные вопросы