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 年から現在の年 (2010 年) までの年が dropDownList (selectOneMenu) に表示されないことです。

誰かがこれを理解するのを手伝ってくれますか?

4

1 に答える 1

1

私は IceFaces を行っていないので、私が気付いていない別のことを行う可能性がありますが、通常、 に や などのタイプではなく 、、またはをフィードf:selectItemsします。SelectItem[]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 に答える