下面selectItems的是从一个会话域地图喂养。 当用户点击提交按钮,它应该设定一个日期字段作用域支持豆请求,并在页面上显示。
<h:selectOneMenu value="#{dropDown.selectedDate}">
<f:selectItems value="#{mapValues.dateMap.entrySet()}" var="entry" itemLabel="#{entry.value}" itemValue="#{entry.key}" />
</h:selectOneMenu>
<h:commandButton value="Submit" />
You selected Date #{dropDown.selectedDate}
然而,当接收到以下转换错误:
Conversion Error setting value 'Wed Dec 26 15:09:32 EST 2012' for 'null Converter'.
我不知道为什么会收到此错误。 我试图在selectOneMenu用于标签设置javax.faces.DateTime转换器,但随后收到一个更加神秘的验证错误。
发现后该建议检查是否相等()方法是可用的,并且该项目选择是在下拉,这两者应该在此情况下是真实的。
一个解决办法,我能想到的是改变我的地图是字符串键,后者的日期被保存断为字符串。 但似乎矫枉过正。
关于如何得到这个任何建议设立工作?
支持bean:
@Named
@RequestScoped
public class DropDown {
private Date selectedDate;
public Date getSelectedDate() {
return selectedDate;
}
public void setSelectedDate(Date selectedDate) {
this.selectedDate = selectedDate;
}
}
地图豆:
@Named
@SessionScoped
public class MapValues implements Serializable {
private Map<Date, String> dateMap;
@PostConstruct
public void init() {
dateMap = new LinkedHashMap<Date, String>();
dateMap.put(new Date(), "DATEVALUE1");
}
public Map<Date, String> getDateMap() {
return dateMap;
}
public void setDateMap(Map<Date, String> dateMap) {
this.dateMap = dateMap;
}
}
谢谢!