SpEL无法从Scala对象中提取属性值

时间:2016-07-29 13:30:11

标签: spring scala spring-el

我有一个名为NIN_BALLOONHIDE

的简单Scala类
Case

我创建了一个名为case class Case( @(Id@field) var id: String, var state: CaseState = new OpenCaseState, var notes: List[CaseNote] = new ArrayList(), var assignedGroups:Set[String] = new HashSet(), var aclTemplateIds: Set[String] = new HashSet() ) extends Serializable { } 的类的实例,将a_case设置为id。我试图获取123属性的值。我试过这个

id

我得到的var parser: ExpressionParser = new SpelExpressionParser var context: EvaluationContext = new StandardEvaluationContext(a_case) var extractedId = parser.parseExpression("'id'").getValue(context).asInstanceOf[String] 变量中只有"id"。当我尝试在没有单引号的情况下解析extractedId时,我得到一个例外,说明在"id"中找不到属性id。我在这里遗漏了什么或这是Scala问题吗?

1 个答案:

答案 0 :(得分:2)

如果id有吸气剂,SpEL可以为您做到这一点。

我对Scala不满意,但是:

  

的BeanProperty

     

您可以使用@BeanProperty注释注释val和vars。这会生成看起来像POJO getter / setter定义的getter / setter。如果您需要isFoo变体,请使用BooleanBeanProperty注释。丑陋的foo$_eq变成了

setFoo("newfoo");
getFoo();

https://twitter.github.io/scala_school/java.html