1

私はFlex + Java(Spring + hibernate)を使用しています...

ジャバ側…

public enum WeekdayType {
MONDAY(Calendar.MONDAY), TUESDAY(Calendar.TUESDAY), WEDNESDAY(
        Calendar.WEDNESDAY), THURSDAY(Calendar.THURSDAY), FRIDAY(
        Calendar.FRIDAY), SATURDAY(Calendar.SATURDAY), SUNDAY(
        Calendar.SUNDAY);

private int day;

private WeekdayType(int day) {
    this.day = day;
}

}

私が使用している休止状態のBeanクラス..TimetableVO.java

@Column(name="REPEAT_DAYS")
private String repeatDays;

@Transient
public List<WeekdayType> getRepeatDaysEnumList(){
    List<WeekdayType> list = new ArrayList<WeekdayType>();
    for(String str : this.repeatDays.split(",")){
        list.add(WeekdayType.valueOf(str));
    }
    return list;
}

@Transient
public void setRepeatDaysEnumList(List<WeekdayType> repeatDays){
    StringBuilder sb = new StringBuilder();
    for(WeekdayType weekdayType : repeatDays){
        sb.append(weekdayType.name());
        sb.append(",");
    }
    this.repeatDays = sb.substring(0, sb.length()-1);
}

そしてFlex側では……

        private var timetableVO:TimetableVO = new TimetableVO();

    timetableVO.repeatDays = selectedDays.substr(0, selectedDays.length-1);
     private var selectedDays:String = null;
            protected function selectRepeatedDays(event:MouseEvent):void
            {
                selectedDays = new String();
                if(MON.selected==true)
                {
                    selectedDays += "MONDAY,";
                }
                if(TUE.selected==true)
                {
                    selectedDays +=  "TUESDAY,";
                }
}

ただ私はrepeatDaysに値を追加していますが、それは与えていますNullPointer Exception

 Exception:Property 'repeatDaysEnumList' threw exception; nested exception is java.lang.NullPointerException.......
Caused by: java.lang.NullPointerException
    at com.sits.ec.valueObjects.TimetableVO.setRepeatDaysEnumList(TimetableVO.java:64)

私はrepeatDaysEnumListを作成していませんが、セッターとゲッターのためにHibernateが行います。次に、このNull値がどのように来るか...

4

1 に答える 1

0

この問題は、文字列をサーバーに送り返しているときに発生していると思いますが、これを列挙型のリストに変換する方法がわかりません。最初に、カンマ区切りの文字列を送り返すことはお勧めしませんが、要素の ArrayCollection を送信しますが、それでも文字列が Enum に逆シリアル化されていないことを処理できません (逆の方法でも機能します)。BlazeDS に列挙型のサポートを追加する方法についてのチュートリアルを書きました。自動コード生成とFlexmojosを処理する場合でも、問題を解決するために必要な情報の部分も含まれているはずです: https://dev.c-ware.de/confluence/display/PUBLIC/Flexmojos+生成された+AS3+モデル+with+Enum+support+using+BlazeDS

于 2013-02-18T16:28:15.993 に答える