我正在尝试创建一个下拉框,它从Glassfish服务器上保存的数据库中获取选择。我成功实现了这一目标。下一步是让用户的选择出现在下一页上。我试图这样做
的index.xhtml
<h:selectOneMenu value="#{mealBean.monLunch}">
<f:selectItems value="#{mealBean.getMealsByTime('Lunch')}"/>
</h:selectOneMenu>
有一个命令按钮链接到index.xhtml中的results.xhtml,如下所示
豆
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;
}
然后在results.xhtml
#{mealBean.monLunch}
我的问题是,当我点击命令按钮时,数据不会出现在新页面上。有办法解决这个问题吗?任何帮助,将不胜感激。 先谢谢你了
答案 0 :(得分:1)
您应该使用@ManagedBean(name = "mealBean")
而不是@Named(value = "mealBean")
来注释您的bean。
将javax.inject.Named
等CDI注释与JSF注释(如javax.faces.bean.SessionScoped
或javax.faces.bean.ManagedBean
)混合使用并不是一个好习惯。
这样你就可以删除无用的@Dependent
。