[英]Mvel how to set value
如果MVel表達式為true,則需要設置屬性的值。 誰能幫我,怎么做。
示例代碼如下:
LineItem lineItem = new LineItem();
Address address = new Address();
address.setAddress1("ABC");
address.setAddress2("PA");
lineItem.setShipFromAddress(address);
ParserContext parserContext = ParserContext.create();
parserContext.stronglyTyped().withInput("lineItem",LineItem.class)
.withInput("shipFromAddress", Address.class);
Object compiledWithSet = MVEL.compileExpression("( shipFromAddress.address1 contains 'ABC' || shipFromAddress.address1 contains 'ABC DEF' ) && (shipFromAddress.address2 contains 'PA') ? setShipFromLocation('PA1') : ",parserContext);
MVEL.executeExpression(compiledWithSet, lineItem);
您的問題有解決方案,但是您可以詳細說明用例。 這是一個小樣本答案,希望這可以幫助您入門。
public class MyMaths {
int a;
public int getA() {
return a;
}
public void setA(int a) {
this.a = a;
}
}
public static void main(String[] args) {
Map map = new HashMap();
MyMaths mayMaths = new MyMaths();
map.put("obj", mayMaths);
map.put("name", "Ankur");
String expression1 = "obj.a = ( name == 'Ankur') ? 20 : 25";
Serializable compiled1 = MVEL.compileExpression(expression1);
MVEL.executeExpression(compiled1, map);
System.out.println(mayMaths.getA());
}
所以在這里我實際上是將值賦給MyMaths
類的變量“ a
”
輸出-20
現在將值從“ Ankur”更改為“ XYZ”,輸出將為25。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.