enhancement #ID8XF9 对QLExpress4的支持

This commit is contained in:
everywhere.z
2025-12-02 00:35:29 +08:00
parent 1b07db84c8
commit 3b43111f18
35 changed files with 477 additions and 12 deletions

View File

@@ -371,7 +371,7 @@ public class LiteFlowChainELBuilder {
// 解析el成为一个Condition
// 为什么这里只是一个Condition而不是一个List<Condition>呢
// 这里无论多复杂的外面必定有一个最外层的Condition所以这里只有一个内部可以嵌套很多层这点和以前的不太一样
QLResult expressResult = EXPRESS_RUNNER.execute(chain.getEl(), context, QLOptions.DEFAULT_OPTIONS);
QLResult expressResult = EXPRESS_RUNNER.execute(chain.getEl(), context, QLOptions.builder().cache(true).build());
Condition condition = (Condition) expressResult.getResult();
if (Objects.isNull(condition)){
@@ -431,8 +431,7 @@ public class LiteFlowChainELBuilder {
// 解析el成为一个Condition
// 为什么这里只是一个Condition而不是一个List<Condition>呢
// 这里无论多复杂的外面必定有一个最外层的Condition所以这里只有一个内部可以嵌套很多层这点和以前的不太一样
QLResult expressResult = EXPRESS_RUNNER.execute(elStr, context, QLOptions.DEFAULT_OPTIONS);
QLResult expressResult = EXPRESS_RUNNER.execute(elStr, context, QLOptions.builder().cache(true).build());
return (T) expressResult.getResult();
}

View File

@@ -17,11 +17,13 @@ public class QlExpressUtils {
/**
* EL解析引擎
* InterpolationMode.DISABLE意思是不对插值表达式进行处理
*/
private final static Express4Runner EXPRESS_RUNNER = new Express4Runner(InitOptions.builder().interpolationMode(InterpolationMode.DISABLE).build());
/**
* 上下文搜索解析引擎
* QLSecurityStrategy.open()意思是将安全策略设置为开放
*/
private final static Express4Runner CONTEXT_SEARCH_EXPRESS_RUNNER = new Express4Runner(InitOptions.builder().securityStrategy(QLSecurityStrategy.open()).build());