0

在我的 ApplicationBean1.java 类中,我有一个 Option[] 属性年和一个填充方法:

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 年到 currentyear(2010) 的年份没有出现在 dropDownList (selectOneMenu) 中。

有人帮我解决这个问题吗?

4

1 回答 1

1

我不做 IceFaces,所以它可能会做不同的事情,我不知道,但你通常f:selectItems用 a或 a喂它SelectItem[],而不是用 an或任何类型喂它。List<SelectItem>Map<Object, Object>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()在错误的时刻调用它或者可能根本没有调用它。

于 2010-06-15T14:06:14.740 回答