SpringBoot + Freemarker + VUE实现类似Freemarker功能
引用
<dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.x</version> </dependency>
Freemarker支持直接传入字符串作为模板,而不仅限于从文件中加载模板。下面是使用Freemarker直接传入字符串的示例:
import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.TemplateException; import java.io.IOException; import java.io.StringWriter; import java.util.HashMap; import java.util.Map; public class FreemarkerExample { public static void main(String[] args) throws IOException, TemplateException { // 创建Freemarker配置 Configuration configuration = new Configuration(Configuration.VERSION_2_3_30); // 创建一个字符串作为模板 String templateString = "<html> " + "<head> " + "<title>Welcome ${name}!</title> " + "</head> " + "<body> " + "<h1>Welcome ${name}!</h1> " + "<p>Age: ${age}</p> " + "</body> " + "</html>"; // 将字符串转换为模板 Template template = new Template("myTemplate", templateString, configuration); // 准备数据 Map<String, Object> dataModel = new HashMap<>(); dataModel.put("name", "John"); dataModel.put("age", 25); // 合并模板和数据 StringWriter writer = new StringWriter(); template.process(dataModel, writer); String output = writer.toString(); // 输出结果 System.out.println(output); } }
在上述示例中,我们直接将HTML字符串作为模板,通过 new Template("myTemplate", templateString, configuration)创建了模板对象。然后,我们按照之前的步骤准备数据、合并模板和数据,并输出结果。
通过这种方式,你可以在代码中直接定义模板字符串,而无需从外部文件加载模板。这在一些特定场景下非常有用,例如动态生成邮件内容、生成临时HTML页面等。
VUE版
npm install handlebars # or yarn add handlebars
const Handlebars = require("handlebars"); const template = Handlebars.compile("Name: { {name}}"); console.log(template({ name: "Nils" }));
下一篇:
html中ul和li标签的用法