将枚举添加到spring webflow

时间:2016-11-16 11:09:43

标签: java spring enums spring-webflow

我想要包含一个枚举

public enum ContactType {
    PHONE,
    FAX,
    MAIL
}

到我的flow.xml可以访问视图以及流本身。我试图将它添加为var(如bean):

<var name="ContactType" class="my.package.common.util.ContactType"/>

但我收到错误:

NoSuchMethodException: my.package.common.util.ContactType.<init>()

我应该以某种方式init()枚举吗?或者还有另一种方法可以包含它?

2 个答案:

答案 0 :(得分:0)

你可能必须这样做。不是最好的,但应该使用你的小枚举集:

<evaluate expression="T(my.package.common.util.ContactType).PHONE" result="conversationScope.phoneContactType"/>
<evaluate expression="T(my.package.common.util.ContactType).FAX" result="conversationScope.faxContactType"/>
<evaluate expression="T(my.package.common.util.ContactType).MAIL" result="conversationScope.mailContactType"/>

希望这对您有用 - 否则应考虑上面的@ rptmat57解决方案。

参考:http://forum.spring.io/forum/spring-projects/web/web-flow/78197-enum-constants-in-webflow-expression-language

答案 1 :(得分:0)

你不能按照spring webflow docs

  

使用var元素声明流变量:

     

             确保您的变量类实现了java.io.Serializable,因为在流请求之间保存了实例状态。

  

枚举类型除了枚举常量定义的实例外没有其他实例。 https://docs.oracle.com/javase/specs/jls/se8/html/jls-8.html#jls-8.9

因此...

相关问题