ENUM验证弹簧表达式语言

时间:2015-04-09 05:44:54

标签: spring validation enums instanceof spring-el

我正在尝试验证内部在服务中内部映射到ENUM businessType的json字段。我无法在SpEL中编写逻辑来断言business_type json字段是businessType Enums之一

我尝试使用instanceof,但它仅验证输入是'的实例。 BusinessDetails类,而不是BusinessDetails.BusinessType中的ENUMS之一

<property name="isValid" value="(#element.businessType instanceof (com.paypal.platform.ops.model.BusinessDetails$BusinessType))" />

请建议如何验证输入是否为已定义的ENUM类型之一。 感谢您的投入!

1 个答案:

答案 0 :(得分:0)

您可以使用Collection Selection根据BusinessType.values()过滤#element.businessType列表:

T(com.paypal.platform.ops.model.BusinessDetails$BusinessType).values().?[name()==#element.businessType].length==1

如果过滤后的数组不为空,则#element.businessType必须有效,否则数组将为空。