首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果-在jexl怎么跑?

如果-在jexl怎么跑?
EN

Stack Overflow用户
提问于 2016-11-08 09:33:59
回答 1查看 4.6K关注 0票数 1

下面是3个INT参数:a、b、c和1个字符串参数:d。以下是Java中的代码:

代码语言:javascript
复制
if (a>1) return c+d;
if (b<2) return c-d;
if (d.equals("123") return c*d;
return c+1;

如何将上述代码转换为Jexl?我试了很多次,包括使用var。但它总是返回null。

EN

回答 1

Stack Overflow用户

发布于 2017-01-11 17:59:35

您可能使用JEXL表达式而不是脚本。只能在表达式中使用三元条件。如果-否则,应在脚本中使用返回、for、while:

代码语言:javascript
复制
JexlEngine jexl = new JexlBuilder().create();
JexlScript script = jexl.createScript(scriptText);
result = script.execute(context);

请参阅http://commons.apache.org/proper/commons-jexl/reference/syntax.html

来自javadoc:

表达式与脚本不同--它只是对单个表达式的引用,而不是对多个语句的引用。这意味着'if','for','while','var‘和块{.表达式中不允许‘}’。 脚本是使用给定的一组JexlContext变量执行的一些有效的JEXL语法。脚本是由分号分隔的一组语句。语句可以是块(包含代码的大括号)、控制语句(如if和while )以及表达式和赋值语句。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40483370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档