1 概述

在设计表单时,已有的函数不能满足特定的业务需求,例如需要对某个加密字段进行读写设置,需要用到的特定的加密算法,但目前乐创者的表达式中仅支持国密sm4加解密不能满足业务需求。

此时用户就需要用到自定义JUEL函数来自行定义加解密函数实现业务目的。

2 开发环境

需要准备一个基于标准Oracle Jdk1.8的java开发环境。

需要引入以下几个jar(可点击下载 lib.rar)。

3 编写代码

创建一个java包,名称必须是在com.datanew.creater下面

例如:

在myjuel中加入package-info.java(没有这个插件采集器不会采集这个包下面的插件)

对应代码如下:

@SearchPlugIn
package com.datanew.creater.myjuel;

import com.datanew.core.sys.annotation.SearchPlugIn;

增加代码:

@JuelContainer(prefix = "myjuel")//容器,可以写容器前缀
public class MyJuel {

    @JuelMethod//标识这是一个可识别的juel函数
    public static String function1(String param1){
        //param1是传入的参数
        //业务内容自己实现
        return param1;
    }
}

创建一个容器类,需要打上@JuelContainer注解

在容器内实现对应函数,必须是public static修饰的公共静态函数

返回值和传入参数无绝对规定,可自行处理,参数数量无要求,可添加多个参数

3.1 jar的方式编译

代码编写完成后可通过工具将代码编译成jar文件,放到:安装目录\lczServer\WEB-INF\lib\ 文件夹下面,重启服务即可。

3.2 Class的方式编译

把代码编译成class文件

复制到安装目录\lczServer\WEB-INF\classes\com\datanew\creater\myjuel(这个名字根据用户自定义来)目录中,重启服务(creater文件夹不存在,可以自己新建)

4 调用方式

当前无函数注册机制,所以放入jar后需要自行编写函数调用

${myjuel:function1("123123")}

如果用户没有编写前缀,那就直接调用即可

${function1("123123")}

附件
作者:Eric  创建时间:2025-03-27 14:40
最后编辑:Eric  更新时间:2025-04-24 13:55