”;
SpEL expression allows to create and use functions specific to expression using #function-name syntax. A function is set using registerFunction on EvaluationContext.
Syntax
context.registerFunction("reverse", MainApp.class.getDeclaredMethod("reverse", new Class[] { String.class }));
Following example shows the various use cases.
Example
Let”s update the project created in Spring SpEL – Create Project chapter. We”re adding/updating following files −
-
MainApp.java − Main application to run and test.
Here is the content of MainApp.java file −
package com.tutorialspoint; import java.text.ParseException; import org.springframework.expression.ExpressionParser; import org.springframework.expression.spel.standard.SpelExpressionParser; import org.springframework.expression.spel.support.StandardEvaluationContext; public class MainApp { public static void main(String[] args) throws ParseException, NoSuchMethodException, SecurityException { ExpressionParser parser = new SpelExpressionParser(); StandardEvaluationContext context = new StandardEvaluationContext(); context.registerFunction("reverse", MainApp.class.getDeclaredMethod("reverse", new Class[] { String.class })); String reverseString=parser.parseExpression("#reverse(''main'')").getValue(context, String.class); System.out.println(reverseString); } public static String reverse(String input) { StringBuilder backwards = new StringBuilder(); for (int i = 0; i < input.length(); i++) { backwards.append(input.charAt(input.length() - 1 - i)); } return backwards.toString(); } }
Output
niam
Advertisements
”;