我只使用了一个星期的Ice:faces,我很难找到如何在页面上实现一个简单的selectOneMenu,这样我就可以通过简单的下拉列表来选择一个人的性别,而不是输入一些东西。
得到的错误如下
类型异常报告
消息
descriptionThe服务器遇到一个内部错误(),无法满足此请求。
异常
未找到的方法: data.SelectMenuHomes@ad503c.selectedGender(javax.faces.event.ValueChangeEvent)
注意,Sun GlassFish EnterpriseServerv2.1.1日志中提供了异常的完整堆栈跟踪及其根本原因。
所以我想我显然指的是一些不存在的东西
这是我的密码
在页jsp表单中:
<ice:selectOneMenu valueChangeListener="#{homeSelect.selectedGender}">
<f:selectItems value="#{homeSelect.genders}"/>
</ice:selectOneMenu>选择菜单的类:
import java.util.LinkedList;
import java.util.List;
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.SelectItem;
public class SelectMenuHomes
{
public static String selectedGender = null;
public static void changeGender(ValueChangeEvent event)
{
selectedGender = event.getNewValue().toString();
}
public List<SelectItem> getGenders()
{
List<SelectItem> genderList = new LinkedList<SelectItem>();
genderList.add(new SelectItem("Male"));
genderList.add(new SelectItem("Female"));
return genderList;
}
public String getSelectedGender() {
return selectedGender;
}
public void setSelectedGender(String selectedGender) {
this.selectedGender = selectedGender;
}
}homeSelect是我给出的用于引用MenuSelectHomesClass的托管bean的名称
谢谢你的帮助
发布于 2012-07-16 12:43:35
解出
<ice:selectOneMenu value="#{dataControl.appendGender}">
<f:selectItems value= "#{homeSelect.genders}"/>
</ice:selectOneMenu> appendGender是方法中使用的变量,用于运行SQL查询以及变量,如appendName、appendSurname等。
发布于 2012-07-13 08:52:53
您缺少了valueChangedListener调用的方法。jsf文件中的valueChangeListener="#{homeSelect.selectedGender}“指向homeSelect bean中缺少的方法"selectedGender(javax.faces.event.ValueChangeEvent)”。您没有使用value=属性。
在没有转换器或实用程序的情况下,不能将对象直接放入这些菜单中。
参见“在selectMenu中使用对象”:http://balusc.blogspot.ch/2007/09/objects-in-hselectonemenu.html还查看了与这样一个转换器一起出现的:http://omnifaces.org。
https://stackoverflow.com/questions/11466902
复制相似问题