欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

freemarker入门实例与源码研究准备工作

发布时间:2025/1/21 编程问答 76 豆豆
生活随笔 收集整理的这篇文章主要介绍了 freemarker入门实例与源码研究准备工作 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

首先去freemarker官网下载源码jar包,本文是基于freemarker-2.3.21.tar.gz进行研究的。解压源码包,找到freemarker的源码部分导入eclipse工程中。需要注意的是:freemarker的ftl文件解析使用javacc实现的,所以源码中没有解析类(FMParse.java)。要想研究freemarker源码,往往还需要引入freemarker.jar(含有FMParse.class),否则源码会出现编译问题。
另外,还需要引入的jar包有:commons-logging.jar,log4j.jar,servlet-api.jar。最后设置一下日志的输出,方便我们查看底层运行情况。log4j.properties文件的内容如下所示:

log4j.rootLogger=DEBUG,A1,A2 #指定log输出目的,这里设为输出日志到指定目录的文件my.log中 log4j.appender.A1=org.apache.log4j.FileAppender log4j.appender.A1.File=logs/my.log #指定日志信息的格式 log4j.appender.A1.layout=org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern=%c[%d]-%m%n#把A2输出到控制台 log4j.appender.A2=org.apache.log4j.ConsoleAppender log4j.appender.A2.layout=org.apache.log4j.PatternLayout log4j.appender.A2.layout.ConversionPattern=[%c][%d][%p]-%m%n

入门实例

首先在项目中建立存放模板的文件夹templates,然后放入模板文件person.ftl,内容如下:
Hello, my name is ${name}. I come from ${address}. Nice to meet you!

public class Test {public static void main(String[] args) throws IOException, TemplateException{Version version = new Version(2, 3, 1);Configuration cfg = new Configuration(version);cfg.setDirectoryForTemplateLoading(new File("templates"));cfg.setObjectWrapper(new DefaultObjectWrapper(version));Template temp = cfg.getTemplate("person.ftl");Map root = new HashMap();root.put("name", "张三");root.put("address", "中国-北京");Writer out = new OutputStreamWriter(System.out);temp.process(root, out);out.flush();} }

输出结果为:

Hello, my name is 张三. I come from 中国-北京. Nice to meet you!

转载于:https://www.cnblogs.com/cz-xjw/p/4987164.html

总结

以上是生活随笔为你收集整理的freemarker入门实例与源码研究准备工作的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。