public class Student {
private Name name;
private String no;
private String sex;
private Integer age;
private Date entranceDate;
private boolean local;
public boolean isLocal() {
return local;
}
public void setLocal(boolean local) {
this.local = local;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Name getName() {
return name;
}
public void setName(Name name) {
this.name = name;
}
public String getNo() {
return no;
}
public void setNo(String no) {
this.no = no;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public Date getEntranceDate() {
return entranceDate;
}
public void setEntranceDate(Date entranceDate) {
this.entranceDate = entranceDate;
}
}
public class Name {
private String firstName;
private String lastName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
public class FreeMarkerApp {
public static void main(String[] args) {
Configuration cfg = new Configuration();
Writer out = null;
try {
cfg
.setDirectoryForTemplateLoading(new File(
"/home/lingshangwen/repo/eclipse/freemarker/src/main/resources/templates"));
cfg.setObjectWrapper(new DefaultObjectWrapper());
Template tmp = cfg.getTemplate("simple.ftl");
Map root = new HashMap();
List<Student> studentList = new ArrayList<Student>();
Student student = null;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date entranceDate = sdf.parse("2004-09-10");
Name name = null;
for (int i = 0; i < 10; i++) {
name = new Name();
name.setFirstName("eagle" + i);
name.setLastName("paraidse" + i);
student = new Student();
student.setName(name);
student.setAge(24);
student.setNo(String.valueOf(20040900 + i));
student.setEntranceDate(entranceDate);
if (i < 5) {
student.setLocal(true);
student.setSex("男");
} else {
student.setLocal(false);
student.setSex("女");
}
studentList.add(student);
}
root.put("studentList", studentList);
out = new OutputStreamWriter(System.out);
tmp.process(root, out);
out.flush();
} catch (IOException e) {
e.printStackTrace();
} catch (TemplateException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
} finally {
if (out != null) {
try {
out.close();
out = null;
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
simple.ftl
<#if studentList?exists>
<#list studentList as student>
${student.name.firstName}.${student.name.lastName} ${student.no} ${student.sex} ${student.age?c} ${student.local?string("本地学生", "外地学生")}
</#list>
</#if>
输出
eagle0.paraidse0 20040900 男 24 本地学生
eagle1.paraidse1 20040901 男 24 本地学生
eagle2.paraidse2 20040902 男 24 本地学生
eagle3.paraidse3 20040903 男 24 本地学生
eagle4.paraidse4 20040904 男 24 本地学生
eagle5.paraidse5 20040905 女 24 外地学生
eagle6.paraidse6 20040906 女 24 外地学生
eagle7.paraidse7 20040907 女 24 外地学生
eagle8.paraidse8 20040908 女 24 外地学生
eagle9.paraidse9 20040909 女 24 外地学生
分享到:
相关推荐
本篇文章将深入探讨如何在Java中使用FreeMarker生成带有盖章的PDF合同文件。 首先,让我们了解FreeMarker的基本概念。FreeMarker是一个基于模板的语言,它与Java代码分离,允许开发者用简单的模板语法来表示数据。...
通过以上步骤,你可以在SpringBoot应用中成功集成并使用Freemarker模板引擎。这只是一个基础的介绍,实际开发中,你可以根据项目需求配置更多的Freemarker特性和功能,如缓存管理、日期格式化等,以满足复杂的应用...
标题中的“grails使用freemarker.rar”表明这是一个关于如何在Grails框架中应用FreeMarker模板引擎的资源包。FreeMarker是一个开源的、基于Java的模板引擎,它用于生成动态HTML或其他格式的文本,比如XML、PDF等。...
要开始在Struts2中使用FreeMarker模板,首先需要将`freemarker-2.3.8.jar`库文件导入到你的项目的`WEB-INF/lib`目录下。这个库包含了FreeMarker模板引擎的所有必要组件。然后创建一个新的web工程,例如`...
在Struts2中使用FreeMarker,主要涉及以下几个核心概念和步骤: 1. **配置FreeMarker**: - 在Struts2的配置文件(通常为struts.xml)中,你需要指定FreeMarker作为默认的视图技术。 - 配置FreeMarker的路径,...
Springboot项目中: 1. 使用Apache POI 3.9 自定义样式导出Excel文件...2. 使用freemarker动态生成word .doc文档(带图片Word以及复杂格式word) 详细说明见个人博客及 github: https://github.com/DuebassLei/excel-poi
Java 使用 FreeMarker 模板技术导出 Word 是一种常见的数据动态生成文档的方法,它结合了 Java 的编程能力和 FreeMarker 模板引擎的强大功能,能够帮助开发者高效地生成结构化的 Word 文档。FreeMarker 是一个开源的...
本示例将详细讲解如何使用Freemarker来导出Word文档,并提供供他人下载的功能。 首先,理解Freemarker的核心概念。Freemarker是一个基于模板的Java库,它与后台数据模型结合,用于生成输出文本。模板是包含动态内容...
下面我们将深入探讨如何配置Spring以使用Freemarker作为视图解析器,以及如何在前端页面上全面使用Freemarker进行渲染。 首先,我们需要在Spring的配置文件中添加对Freemarker的支持。这通常涉及到以下几个步骤: ...
本话题将深入探讨如何使用FreeMarker扩展Struts2的标签库,以增强视图层的表现力和灵活性。 首先,FreeMarker是一个基于模板的语言,它允许开发者用简单的语法来处理数据模型并生成HTML或其他文本。在Struts2中,...
这篇博客文章“使用FreeMarker生成java代码”深入探讨了如何利用FreeMarker来自动化Java代码的生成过程,从而提高开发效率。 FreeMarker的工作原理是将设计模式(模板)与数据模型结合,模板中包含了一系列控制结构...
在代码中,使用FreeMarker API加载模板文件,创建`Template`对象,然后用数据模型实例化`Map`对象。通过`Configuration`对象的`process`方法,将模板与数据模型合并,生成Word文档的字节流。最后,你可以选择将这个...
在这个场景下,使用Freemarker模板技术可以帮助我们实现这一目标。Freemarker是一个强大的、轻量级的模板引擎,它可以将模板和数据模型结合起来,生成输出文本,如HTML、XML或者如本例中的PDF。 首先,我们需要了解...
本篇将深入探讨如何使用FreeMarker来生成一套完整的MVC流程,包括Controller、Service、Impl、PageModel、DAO以及Mapper。 1. **FreeMarker简介** FreeMarker是一个基于模板的开源Java库,用于生成文本输出。它的...
提供的压缩包文件中,"freemarker使用文档.docx"可能是关于如何使用Freemarker的教程,可以帮助进一步了解其用法;"沈阳军区漏洞扫描情况报告.docx"可能是一个示例生成的Word文档;"foxe_CHS.exe"看起来像是一个中文...
1. **模板语言**:Freemarker使用简单的文本模板语言,不依赖任何编程语言。模板中包含控制结构(如条件语句、循环)和数据引用表达式。 2. **分离关注点**:Freemarker的核心理念是将逻辑和展示分开,开发者负责...
总的来说,“freemarker导出doc及docx”涉及到了Freemarker模板引擎的使用、SpringBoot的集成、以及利用Apache POI等库处理Word文档的技巧。实际操作时,你需要根据项目需求定制模板,设置数据模型,最后通过编程...
在实际项目中,FreeMarker经常与Spring MVC等框架结合使用,实现更复杂的视图渲染逻辑。 在给定的压缩包文件`freemark`中,可能包含了FreeMarker的相关示例代码、模板文件和其他辅助资源。解压并研究这些文件可以...
下面将详细解释如何正确使用FreeMarker,并通过Spring MVC中的具体案例来阐述。 1. **FreeMarker配置**: - 在Spring MVC的配置文件中,需要添加FreeMarker视图解析器的相关配置,包括模板目录、输出字符集、是否...
本篇文章将深入探讨如何使用FreeMarker模板引擎来生成包含图片和动态数据表的Word文档,尤其注重动态行和动态列的处理。 FreeMarker是一个强大的模板语言,用于生成文本输出,如HTML、XML、Word文档等。它与Java...