在我的ApplicationBean1.java类中,我有一个Option []属性years和一个填充方法:
public void buildYearOptions(){
int initialYear = 1900;
int currentYear = Calendar.getInstance().get(Calendar.YEAR);
int i = 0;
for (int y = initialYear; y< currentYear; y++){
Option op = new Option(y, Integer.toString(y));
years[i] = op;
i++;
}
}
这是我使用icefaces的jsp页面:
<ice:selectOneMenu id="selectOneYearMenu" partialSubmit="true"
style="height: 24px; left: 238px; top: 94px; position: absolute; width: 72px;visibility: visible;"
visible="true">
<f:selectItems id="selectOneMenuYearItems" value="#{ApplicationBean1.years}"/>
</ice:selectOneMenu>
我的问题是,从1900年到今年(2010年)的年代没有出现在dropDownList(selectOneMenu)中。
有人帮我解决了这个问题吗?答案 0 :(得分:1)
我不做IceFaces,所以它可能会做一些我不知道的事情,但你通常用SelectItem[]
,List<SelectItem>
或{{3}来提供f:selectItems
。 },而不是Option[]
或任何类型。
这应该有效:
private List<SelectItem> years; // +getter.
public void buildYearOptions() {
final int initialYear = 1900;
final int currentYear = Calendar.getInstance().get(Calendar.YEAR);
for (int year = initialYear; year < currentYear; year++) {
years.add(new SelectItem(year, String.valueOf(year)));
}
}
如果它仍然没有提供任何内容,那么您可能会在错误的时刻致电buildYearOptions()
,或者可能根本不会调用它。