Java模版参数替换基于EL表达式的工具类
时间: 2023-10-16 18:06:18 浏览: 141
可以使用 Apache Velocity 模板引擎来实现 Java 模版参数替换基于 EL 表达式的工具类。Velocity 允许使用类似于 EL 表达式的语法来指定模板参数,然后在运行时进行替换。
以下是一个示例工具类的代码:
```java
import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine;
import java.io.StringWriter;
public class TemplateUtils {
public static String replace(String templateString, Object contextObject) {
VelocityEngine engine = new VelocityEngine();
engine.init();
Template template = engine.getTemplate(templateString);
VelocityContext context = new VelocityContext();
context.put("context", contextObject);
StringWriter writer = new StringWriter();
template.merge(context, writer);
return writer.toString();
}
}
```
该工具类接受模板字符串和一个上下文对象作为参数,并将模板字符串中的 EL 表达式替换为上下文对象中对应的值。使用时,可以像这样调用:
```java
String templateString = "Hello ${context.name}, welcome to ${context.city}!";
User user = new User("Alice", "San Francisco");
String result = TemplateUtils.replace(templateString, user);
System.out.println(result); // Hello Alice, welcome to San Francisco!
```
在这个例子中,模板字符串中的 `${context.name}` 和 `${context.city}` 将被替换为 `User` 对象中对应的属性值。
阅读全文