java - 如何在java Enum类中存储Flex文本框值?

标签 java spring apache-flex flex4

我正在使用 Flex+java(Spring+hibernate)...

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 类..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,";
                }
}

只是我在repeateDays中添加值,但它给出了NullPointer异常

 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会这样做,因为Setter和Getter那么这个Null值是如何来的......

最佳答案

嗯,我猜这个问题是在您将字符串发送回服务器时发生的,而这根本不知道如何将其转换为枚举列表。首先,我不建议发送回逗号分隔的字符串,而是发送一个元素的 ArrayCollection,但这仍然不能处理字符串仍未反序列化为 Enum 的情况(尽管另一种方法确实有效)。我写了一篇关于如何向 BlazeDS 添加类枚举支持的教程。即使它确实处理自动代码生成和 Flexmojos,我想它也应该包含解决问题所需的部分信息:https://dev.c-ware.de/confluence/display/PUBLIC/Flexmojos+generated+AS3+model+with+Enum+support+using+BlazeDS

关于java - 如何在java Enum类中存储Flex文本框值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13908583/

相关文章:

java - 获取所有租户中的人员

java - 无法打开 ServletContext 资源 applicationContext.xml

apache-flex - 不同的命名空间在 Flex 中意味着什么?

javascript - E4X : Assigning to root node

css - 如何在不将图像嵌入外部样式表的情况下将图像用于皮肤

java - 我在函数中遇到空指针异常,不知道如何修复它

java - 无法创建 JexlEngine 对象

java - 如何使用 JPA 在特定实体组中创建对象? (谷歌应用引擎 Java)

java - 基于带有 Spring WebMVC REST Controller 的接受 header 的不同响应实体主体

java - Spring bean 部分 Autowiring 原型(prototype)构造函数