2017-01-02 5 views
0

Я пытаюсь создать раскрывающееся окно, которое получает выбор из базы данных, хранящейся на сервере Glassfish. Мне это удалось. Следующий шаг состоял в том, чтобы выбор пользователя появился на следующей странице. Я попытался сделать это, делая этоDrop Down Box, показать выбор на следующей странице

index.xhtml

<h:selectOneMenu value="#{mealBean.monLunch}"> 
    <f:selectItems value="#{mealBean.getMealsByTime('Lunch')}"/> 
</h:selectOneMenu> 

Там есть командная кнопка ссылка на results.xhtml из index.xhtml следующего

Bean

public String monLunch; 
public String monDinner; 

public String getMonLunch() { 
    return monLunch; 
} 

public void setMonLunch(String monLunch) { 
    this.monLunch = monLunch; 
} 
public void setMonDinner(String monDinner) { 
    this.monDinner = monDinner; 
} 
public String getMonDinner() { 
    return monDinner; 
} 

, а затем на результатах. Xhtml

#{mealBean.monLunch} 

Моя проблема, когда я нажимаю кнопку команды, данные не отображаются на новой странице. Есть ли способ исправить это? Любая помощь будет оценена по достоинству. Благодарим вас за продвинутый

+0

Hi. Я не понимаю, почему вы устанавливаете monLunch в свой xhtml и в своих результатах. Xhtml вы пытаетесь получить monDinner ... –

+0

О, извините, я исправил его. Результаты. Xhtml пытается отобразить оба варианта, но я скопировал неправильный haha. – underSizedGiant

+0

Если вы посмотрите на код, сгенерированный для вашего index.xhtml, являются ли атрибуты «value» в тегах «option»? У вас есть что-то вроде ? –

ответ

1

Вы должны аннотировать свой bean-компонент с помощью @ManagedBean(name = "mealBean") вместо @Named(value = "mealBean").

Не рекомендуется смешивать аннотации CDI как javax.inject.Named с аннотациями JSF, такими как javax.faces.bean.SessionScoped или javax.faces.bean.ManagedBean.

И таким образом вы можете удалить бесполезные @Dependent.

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