简体   繁体   English

如何在Java枚举类中存储Flex文本框值?

[英]How to Store Flex text box value in java Enum class?

I'm using Flex+java(Spring+hibernate)... 我正在使用Flex + java(Spring + hibernate)...

Java side... Java方面...

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;
}

} }

hibernate Bean class i'm using.. TimetableVO.java 我正在使用的休眠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);
}

And in Flex side ... 在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,";
                }
}

Just i'm Adding values in repeateDays But it is giving NullPointer Exception 只是我在repeateDays中添加值,但它给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)

i'm not creating repeatDaysEnumList but Hibernate will do because of Setter and Getter then how this Null value coming... 我没有创建repeatDaysEnumList,但是由于Setter和Getter,Hibernate会这样做,然后此Null值将如何出现...

Well I guess this problem is occuring as you are sending a string back to the server and this simply doesn't know how to convert this into a list of Enums. 好吧,我想这个问题是在您将字符串发送回服务器时发生的,而这根本不知道如何将其转换为Enums列表。 First I wouldn't suggest to send a comma-separated string back, but an ArrayCollection of elements, but that still doesn't handle that Strings are still not deserialized to Enum (the other way around does work though). 首先,我不建议发送回以逗号分隔的字符串,而是发送一个ArrayCollection的元素,但这仍然不能解决String仍未反序列化为Enum的问题(不过,另一种方法确实可行)。 I wrote a tutorial on how to add Enum-Like support to BlazeDS. 我写了一篇有关如何向BlazeDS添加枚举支持的教程。 Even if it does Handle automatic code-generation and Flexmojos, I guess it should also contain the parts of Information you need to get your problem solved: https://dev.c-ware.de/confluence/display/PUBLIC/Flexmojos+generated+AS3+model+with+Enum+support+using+BlazeDS 即使它确实处理自动代码生成和Flexmojos,我想它也应该包含解决问题所需的信息部分: https : //dev.c-ware.de/confluence/display/PUBLIC/Flexmojos+生成+ AS3 +模型+带有+枚举+支持+使用+ BlazeDS

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM