在上一篇我们我们介绍了QLExpress的基础语法,同时我们也演示了一下for循环,但是看哪里的代码被折叠挺多了,使用起来非常不方便,那么我们怎么办呢?其实这就是我们今天介绍的function脚本。
在QLExpress中,我们可以定义一个function函数,类似我们java代码里面的每一个方法,然后在function函数里面编写逻辑。最后我们去执行里面的代码即可。例如我们在这里定义一个function函数:
function getUserInfo(int userId) {
if(userId > 0){
return "获取到了用户的信息"
}else{
return "获取不到用户的信息"
}
}
return getUserInfo(uid)然后我们根据这里的function来调用下方法试试,编码内容是:
@Test
public void test5() throws Exception {
// 定义规则引擎执行器,qlexpress中的规则引擎执行的时候都是在这个ExpressRunner里面执行的
ExpressRunner runner = new ExpressRunner();
String expressQL = "function getUserInfo(int userId) {\r\n" +
" if(userId > 0){\r\n" +
" return \"获取到了用户的信息\"\r\n" +
" }else{\r\n" +
" return \"获取不到用户的信息\"\r\n" +
" }\r\n" +
"}\r\n" +
"return getUserInfo(uid)";
DefaultContext<String, Object> params = new DefaultContext<String, Object>();
params.put("uid", 0);
// 有了规则,有了变量,那么就需要去执行对应的规则
Object result = runner.execute(expressQL, params, null, true, true);
log.info("本次规则执行的结果是:{}", result);
}然后我们运行一下,看下结果:
看到了function代码被正确的执行了。
备注:
1、这里如果我们需要返回值的话,则需要在规则里面使用return,不然的话,我们就打印不出来想要的结果。










还没有评论,来说两句吧...