java工程中使用freemarker例子

新建java project,引入freemarker.jar, 本工程是用的版本:freemarker-2.3.20 版本

java工程目录如下:

test.ftl文件

HTML代码

1 name : ${name}
2 age : ${age}  

Java代码

 1 package com.freemarker;
 2
 3 import java.io.File;
 4 import java.io.IOException;
 5 import java.io.OutputStreamWriter;
 6 import java.io.Writer;
 7 import java.util.HashMap;
 8 import java.util.Map;
 9
10 import freemarker.template.Configuration;
11 import freemarker.template.Template;
12 import freemarker.template.TemplateException;
13
14 public class Test {
15     public static void main(String[] args) throws IOException, TemplateException {
16
17         //1.创建配置实例Cofiguration
18         Configuration cfg = new Configuration();
19
20         //2.设置模板文件目录
21         //(1)src目录下的目录(template在src下)
22         //cfg.setDirectoryForTemplateLoading(new File("src/template"));
23         //(2)完整路径(template在src下)
24         //cfg.setDirectoryForTemplateLoading(new File(
25         //      "D:/cpic-env/workspace/javaFreemarker/src/template"));
26         //cfg.setDirectoryForTemplateLoading(new File("src/template"));
27         //(3)工程目录下的目录(template/main在工程下)--推荐
28         cfg.setDirectoryForTemplateLoading(new File("template/main"));
29         //cfg.setObjectWrapper(new DefaultObjectWrapper());
30         //获取模板(template)
31         Template template = cfg.getTemplate("test.ftl");
32         //建立数据模型(Map)
33         Map<String, String> root = new HashMap<String, String>();
34         root.put("name", "cxl");
35         root.put("age", "25");
36         //获取输出流(指定到控制台(标准输出))
37         Writer out = new OutputStreamWriter(System.out);
38         //StringWriter out = new StringWriter();
39         //System.out.println(out.toString());
40         //数据与模板合并(数据+模板=输出)
41         template.process(root, out);
42         out.flush();
43     }
44 }

运行结果:

java代码

name : cxl
age : 25  
时间: 2024-10-18 20:03:44

java工程中使用freemarker例子的相关文章

java工程中的.classpathaaaaaaaaaaaaaaaa&lt;转载&gt;

第一部分:classpath是系统的环境变量,就是说JVM加载类的时候要按这个路径下去找,当然这个路径下可以有jar包,那么就是jar包里所有的class. eclipse build path是eclipse工程里需要的包,也是需要的class,本质上没什么区别. 你可以测试,比如JDK中有个String类,在java.lang中,那么你自己声明一个别的包,类叫String,然后打个jar包,将这个jar包所在的路径复制到classpath中,在系统的那个String前,这时候你在用Strin

java工程中的.classpath&lt;转载&gt;

第一部分:classpath是系统的环境变量,就是说JVM加载类的时候要按这个路径下去找,当然这个路径下可以有jar包,那么就是jar包里所有的class. eclipse build path是eclipse工程里需要的包,也是需要的class,本质上没什么区别. 你可以测试,比如JDK中有个String类,在java.lang中,那么你自己声明一个别的包,类叫String,然后打个jar包,将这个jar包所在的路径复制到classpath中,在系统的那个String前,这时候你在用Strin

【技巧】Java工程中的Debug信息分级输出接口及部署模式

也许本文的标题你们没咋看懂.但是,本文将带大家领略输出调试的威力. 灵感来源 说到灵感,其实是源于笔者在修复服务器的ssh故障时的一个发现. 这个学期初,同袍(容我来一波广告产品页面,同袍官网)原服务器出现硬件故障,于是笔者连夜更换新服务器,然而在配置ssh的时候遇到了不明原因的连接失败.于是笔者百度了一番,发现了一些有趣的东西. 首先打开ssh的配置文件 sudo nano /etc/ssh/sshd_config 我们可以发现里面有这么几行 # Logging LogLevel DEBUG3

java工程中出现的编码问题

<疯狂java讲义>Arrays中的数组应用举例Num2Rmb的例子,使用Nodepad++编辑后,运行出现: 编码GBK的不可映射字符 尝试使用javac -encoding utf-8 NumTest.java 错误提示为:非法字符:'\uff1b' 无果... 总的来说,问题应该是jdk默认的编码方式与所写的java文件的编码方式不一致导致的 javac省略-encoding参数后,会自动使用操作系统的编码方式.cmd中输入 chcp  获得活动代码为936,说明操作系统默认编码方式是G

java工程中当前目录在html中的设置

本地启动server的时候总是去读"/"的, 但到了服务器上,如果当前目录是服务器根目录下的一个文件夹,就应该设: <head> <meta charset="utf-8"> <title data-ng-bind="pageTitle"></title> <meta name="viewport" content="width=device-width,init

Java工程读取resources中资源文件路径问题

正常在Java工程中读取某路径下的文件时,可以采用绝对路径和相对路径,绝对路径没什么好说的,相对路径,即相对于当前类的路径.在本地工程和服务器中读取文件的方式有所不同,以下图配置文件为例. 本地读取资源文件 java类中需要读取properties中的配置文件,可以采用文件(File)方式进行读取: 1 File file = new File("src/main/resources/properties/basecom.properties"); 2 InputStream in =

JNI文件中命名类与JAVA文件中匹配

jni.c中注册中 int register_android_boa(JNIEnv *env){    jclass clazz;    static const char* const kClassName = "com/lxl/ledClass"; //命名的类 /* look up the class */    clazz = (*env)->FindClass(env,kClassName);  //  clazz = env->FindClass(env,kCl

如何把hadoop相关源码关联到eclipse工程中

在eclipse中阅读源码非常方便,利于我们平时的学习,如下就供述如何把hadoop源码导入到eclpse的java工程中的 一:解压源码 首先,我们在windows下使用winrar把hadoop-1.1.2.tar.gz解压,如图1所示 我们关注文件夹src,浏览该文件夹,如图2所示 我们需要这三个文件夹,一会我们会把这三个文件夹复制到eclipse中. 二:创建java工程 在eclipse中通过菜单栏创建一个java工程,如图3, 图3 这里创建工程叫做"HadoopShanghai&q

Quartz应用实践入门案例二(基于java工程)

在web应用程序中添加定时任务,Quartz的简单介绍可以参看博文<Quartz应用实践入门案例一(基于Web应用)> .其实一旦学会了如何应用开源框架就应该很容易将这中框架应用与自己的任何程序中.只要你的程序中需要这项功能!但是对于一些刚开始学习某种框架的菜鸟而言,这似乎就不是那么简单了.如果在学习开源框架API的同时,能有一两个案例小程序配着其API去看,那应该就是事半功倍了. 本文是在自己学习源码和网上查找资料的基础上完成的,将详细叙述在java工程中如何巧妙的融入Quartz框架,小案