问题标签 [jexl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
775 浏览

android - ClassLookupException:如果使用没有保护的收缩器,则类引用无效

我在我的应用程序中使用了 JEXL 库,似乎新的 Android 类收缩器无法处理它。

这是我的依赖:

我的构建类型定义如下:

当我尝试构建它时,我得到了这个错误:

尽管如果我启用useProguard选项或将minifyEnableduseProguard都设置为 false ,它的构建没有任何问题

我知道JEXL 内部使用的javax.script在 Android 上不可用,但我使用的部分工作得很好,所以我在使用这个库时没有任何问题,除此之外。出于这个原因, Lint 也会引发InvalidPackage类型的错误,但它可以很容易地被禁用并且不会损害构建过程。

是否可以让新的收缩器忽略它并像 Lint 那样继续下一步?

0 投票
1 回答
317 浏览

java - 如何为字符串创建模板?

所以基本上我有一个需要写入具有特定格式的文本文件的 java 对象列表。

例如。

这必须写入一个文本文件,其中每一行的格式是

license--color-----model-------numOfSeats------

license必须占用 10 个字节,即使实际字符串的长度更短。

color必须占用 10 个字节,必须model占用 12 个字节等。

所以我想以这样的方式创建一个模板,我可以插入变量,它们占用所需的字节数(即,如果较短则用空格填充,如果较长则截断)

所以以后,如果模板发生变化,我不需要做任何代码更改。我只需要更改模板。

我一直在探索 JEXL,但我不确定如何用它来实现这一点。

0 投票
1 回答
1535 浏览

java - Java Apache JEXL 布尔表达式问题

我正在用 Java 开发一个系统来检查文本中关键字组合的出现。例如,我有以下表达式要检查:( yellow || red ) && sofa. 我把工作分为两个步骤。第一个是检测文本中的单个单词。第二种是使用结果来检查布尔表达式。经过简短的网络搜索后,我选择了 Apache JEXL。

在上面的例子中,我在布尔表达式中使用了简单的词。使用 ASCII 和非复合词我没有问题。我在布尔表达式中遇到了非 ASCII 和复合关键字的问题,因为我不能将它们用作变量名称。

我该如何解决?我的方式对吗?

对不起,我的英语不好 :)

0 投票
1 回答
740 浏览

java - 在 jexl 表达式中进行类型转换

我使用以下代码获取状态代码。

我想使用 jexl 表达式来获取价值。

我在“createExpression”处收到 org.apache.commons.jexl2.parser.ParseException。如何创建 jexl 表达式以获取 statusCode。

0 投票
1 回答
3797 浏览

jexl - 如何在 jexl 中运行 if-else?

这里有 3 个 INT 参数:a、b、c。和 1 个字符串参数:d。这是Java中的代码:

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

0 投票
0 回答
98 浏览

node.js - 使用 jexl 处理 mongodb 文档时的 NodeJS 脚本和高内存使用率

我创建了一个 nodejs 脚本来处理 mongodb 产品集合。每个产品都需要用 jexl 进行处理,这是一种表达语言。最终结果应该是包含所有产品数据的文本文件。该脚本有效,但我需要一些帮助来优化它,因为它消耗大量内存。在脚本中,我使用批处理大小为 1-5 的 mongodb 游标来限制接收到的文档。该查询接收大约 9200 个文档,平均大小为 8.7KB。

批量大小为 1 时,脚本需要数小时并消耗大约 200-600 MB 的内存。当我将批处理大小设置为 ~10 时,我得到了内存不足的异常。(CALL_AND_RETRY_LAST 分配失败 - 进程内存不足)。

我试图注释掉 jexl.eval 并且脚本会在几秒钟内运行。

有人知道如何优化这个脚本吗?lineTemplate 是所有 jexl 表达式的连接字符串。我剪切了这个表达式字符串以使整个脚本更具可读性。通常属性中的最后一个表达式 "{{attributes[.id == 1 && .language == ""] ? attributes[.id == 1 && .language == ""].value : ""}}|" 以不同的 ID 重复 106 次。

0 投票
1 回答
195 浏览

scala - JEXL API 在 Scala 中工作吗?

假设 foo.method() 可以在 java 上的 Jexl 表达式中调用,这是否可能在 Scala 中使用相同的 api 发生。

0 投票
1 回答
1836 浏览

jmeter - JMeter - jexl2 和 jexl3 之间的区别

什么是jexl以及为什么它比JavaScriptJMeter 执行得更快? ${__jexl3("${checkResponse}" != "")}这段代码在 Jmeter 的 while 控制器中运行良好,而"${checkResponse}" != "" or "${checkResponse}" != "\${checkResponse}".

0 投票
1 回答
340 浏览

jexl - jexl中的多个if语句

我一直在尝试提出一个自定义验证,该验证将检查以下所有三种情况并根据满足的条件返回错误消息。这些验证是分开工作的,有人可以帮忙看看如何让系统进入验证 2 和 3 并显示所有消息,无论是否满足先前的条件

0 投票
1 回答
1116 浏览

java - JEXL - 如何获取未知变量的所有警告消息?

如何获取未知变量的所有警告信息?

我有一个表达式,我想评估并知道所有缺失的变量。

例子:

输出:

我想捕获两个未定义的变量。如果我设置 jexl.setStrict(true) 并添加 try and catch 块,我只能捕获一个变量。

我也愿意使用另一种技术。