0
我想用SpEL來評估一些謂詞。由於值/屬性是動態的,我沒有特定的bean類。因此,我們有一個HashMap其中(根據機應用狀態)的按鍵映射到不同的POJO /豆類,如:彈簧表達式語言地圖
Person person = new Person();// a person instance
person.setAge(25) // e.g. property age
Map<String, Object> model = new HashMap<>();
model.put("person", person);
// and others ...
我們預計通過設置變量,如用於該評估語境:
String predicate = "person.age>21";
StandardEvaluationContext context = new StandardEvaluationContext();
context.setVariables(model);
Expression expression = expressionParser.parseExpression(predicate);
boolean result = expression.getValue(context, Boolean.class);
但是,這將引發異常:
SpelEvaluationException:EL1007E:(POS 0):屬性或字段 '人' 不能爲null找到
的你有建議嗎?
的#做到了。 如果沒有上下文不起作用(拋出一個「屬性不能在類型爲'java.util.HashMap'的對象上找到 - 也許不是公開的例外) – Indivon
啊 - 你需要一個帶有MapAccessor的評估上下文它的propertyAccessors。 –