在上一篇我们我们介绍了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,不然的话,我们就打印不出来想要的结果。
还没有评论,来说两句吧...