用Mvel构建表达式<二>

如何构建MVEL函数脚本

import java.util.*;
import java.time.*;
import java.time.format.*;
import java.text.*;

def abs(value) {
    return Math.abs(value);
}

def dtGetYear(dt){
    sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    calendar = Calendar.getInstance();
    calendar.setTime(sdf.parse(dt));
    return calendar.get(Calendar.YEAR);
}

def Ceiling(d){
    return Math.ceil(d);
}

如何利用MVEL脚本

@Override
public Object mvelCompiler(String express, VariableResolverFactory resolverFactory) throws Exception {
    Object result;
    ClassPathResource resource = new ClassPathResource("mvel/function_built-in.mvel");
    StringBuffer stringBuilder = new StringBuffer();
    try {
        InputStreamReader reader = new InputStreamReader(resource.getInputStream(), "UTF-8");
    
        BufferedReader bfReader = new BufferedReader(reader);
    
        String tempContent;
    
    while (((tempContent = bfReader.readLine())) != null) {
        stringBuilder.append(tempContent);
    }
        bfReader.close();
    } catch (Exception e) {
       //自己做处理
    }
    result = MVEL.evalToString(stringBuilder.append(express).toString(), resolverFactory);
    return result;
}

你可能感兴趣的:(用Mvel构建表达式<二>)