selectOneMenu с selectItems

Я пытаюсь сделать фильтр с помощью selectOneMenu.

У меня есть две категории, когда каждый - selectect, должен отфильтровать результаты, показанные, и также вторая категория.

Код JSF:

<div id="box-categories" class="box-left">
            <b>Filter by topic</b>
            <h:selectOneMenu id="cat1" binding="#{interfaceContainer.documentFormContainer.selectOnes['cat1'].selectOne}" rendered="true"  onchange="javascript:refreshResults(); return false;">
                                        <f:selectItems value="#{interfaceContainer.documentFormContainer.selectOnes['cat1'].items}" />
                                </h:selectOneMenu>
            <b>and subtopic</b>
 <h:selectOneMenu id="cat2" binding="#{interfaceContainer.documentFormContainer.selectOnes['cat2'].selectOne}" rendered="true"  onchange="javascript:refreshResults(); return false;" value="#{interfaceContainer.documentFormContainer.selectOnes['cat2'].value}">
                                        <f:selectItems value="#{interfaceContainer.documentFormContainer.selectOnes['cat2'].items}" />
                                </h:selectOneMenu>
        </div>  

Но у меня есть проблемы, когда я пытаюсь получить значения с помощью этого кода Java:

public String getStringValue(){
      if ( this.selectOne ==null || this.getSelectOne().getValue()==null)
          return "";
      return this.getSelectOne().getValue().toString();
  }

Я понял, что проблема только с getValue (), потому что отладка, this.getSelectOne () находится в правильном значении, но this.getSelectOne () .getValue () является пустым.

Какая-либо идея??Заранее спасибо

1
задан Blanca Hdez 13 July 2010 в 09:37
поделиться

1 ответ

UIInput # getValue () вернет null, если вы попытаетесь получить к нему доступ на любом этапе перед этапом обновления значений модели. Очевидно, вы обращаетесь к нему в «неправильный» момент жизненного цикла JSF. В любом случае создание зависимых раскрывающихся меню в JSF без помощи Ajax - это ужасно.

Короче говоря, вот как это сделать: Заполнить дочернее меню (с полными и работающими примерами кода).

2
ответ дан 2 September 2019 в 23:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: