ava中使用freemarker生成静态页面文件(支持多语言):
FreeMarkerTest:
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.HashMap;
import java.util.Locale;
import freemarker.template.Configuration;
import freemarker.template.Template;
public class FreeMarkerTest {
public static void main(String[] args) {
FreeMarkerTest test = new FreeMarkerTest();
test.getFile();
test.getFile(Locale.JAPAN);
}
public void getFile() {
Configuration freemarkerCfg = new Configuration();
freemarkerCfg.setClassForTemplateLoading(this.getClass(),"/");
freemarkerCfg.setEncoding(Locale.getDefault(),"UTF-8");
Template template;
try {
template = freemarkerCfg.getTemplate("t.ftl");
template.setEncoding("UTF-8");
File htmlFile = new File("t.html");
Writer out = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(htmlFile), "UTF-8"));
HashMap propMap = new HashMap();
propMap.put("user", "hermit");
template.process(propMap, out);
out.flush();
} catch (Exception e) {
e.printStackTrace();
}
}
public void getFile(Locale loc) {
Configuration freemarkerCfg = new Configuration();
freemarkerCfg.setClassForTemplateLoading(this.getClass(),"/");
freemarkerCfg.setEncoding(Locale.getDefault(),"UTF-8");
Template template;
try {
template = freemarkerCfg.getTemplate("t.ftl",loc);
template.setEncoding("UTF-8");
File htmlFile = new File("t_"+loc.getLanguage()+"_"+loc.getCountry()+".html");
Writer out = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(htmlFile), "UTF-8"));
HashMap propMap = new HashMap();
propMap.put("user", "hermit");
template.process(propMap, out);
out.flush();
} catch (Exception e) {
e.printStackTrace();
}
}
}
t.ftl
<html>
<head>
<title>Welcome!</title>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
</head>
<body>
<h1>Welcome ${user}!</h1>
</body>
</html>
t_zh_CN.ftl
<html>
<head>
<title>欢迎!</title>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
</head>
<body>
<h1>你好 ${user}!</h1>
</body>
</html>
freemarker支持多语言国际化,只要把模板名称安装资源文件的写法就可以了,也就是name_语言_国家地区.ftl
如果找不到对应的语言,就会用默认语言的模板。
顺便抱怨一下,freemarker对于空值的处理太霸道了,没有值你就写个空或者写KEY也可以啊,弄一堆出错信息在那
分享到:
相关推荐
在Java应用中,使用FreeMarker导出Word文档可以提供灵活的文本和数据结合的方式,尤其适用于生成报告、合同等复杂格式的文档。本篇将详细介绍如何使用FreeMarker与Java结合来导出包含多张图片的Word文档。 1. **...
在这个“Java FreeMarker demo 【Struts + FreeMarker】”示例中,我们将会探索如何将FreeMarker与Struts框架结合,以实现MVC(Model-View-Controller)架构中的视图层功能。 Struts是一个基于MVC设计模式的Java ...
Java FreeMarker+Maven 实现代码自动生成是一个高效且灵活的方法,可以帮助开发者节省大量手动编写重复性代码的时间。FreeMarker 是一个强大的模板引擎,而Maven作为项目构建工具,能够帮助我们管理和组织项目的构建...
Java FreeMarker 是一个强大的模板引擎,常用于生成动态HTML、XML或其他文本格式的文档。在本场景中,我们将深入探讨如何使用FreeMarker来导出Word文档。FreeMarker模板引擎允许开发者将静态模板与动态数据结合,...
Freemarker模板生成pdf+javaFreemarker模板生成pdf+javaFreemarker模板生成pdf+javaFreemarker模板生成pdf+javaFreemarker模板生成pdf+java
该项目是一款Python实现的轻量级模板渲染工具,模仿了Java Freemarker的语法,旨在生成文本、CSV文件和代码等。由于功能相对简化,故命名为“not so free marker”。该项目包含22个文件,其中Python代码文件14个,...
Java Freemarker 生成 Word 文档 Java Freemarker 是一个基于模板技术的文档生成工具,能够快速生成 Word 文档。下面是使用 Java Freemarker 生成 Word 文档的详细步骤和知识点。 Step 1: 准备 Word 模板 在生成 ...
Java FreeMarker 模板生成Word动态表格是一种在Java开发中常用的技术,用于生成基于模板的复杂文档,特别是当需要创建包含动态数据的Word表格时。FreeMarker是一个强大的模板引擎,它与Java代码分离,允许开发者使用...
### Java Freemarker 语法详解 #### 一、Freemarker 概述与基本概念 Freemarker 是一种用于生成动态内容的模板引擎,它能够帮助开发者将数据模型中的数据渲染到 HTML 页面上,从而实现前后端分离的效果。...
Java FreeMarker 是一个强大的模板引擎,它允许程序员使用简单的模板语言来动态生成各种类型的文档,包括Word文件。在Java开发中,如果你需要自动生成报告、合同或者任何基于特定数据的Word文档,FreeMarker是一个...
本主题聚焦于如何利用gulp这个流行的JavaScript构建工具来集成Java FreeMarker模板引擎,打造一个高效的前端开发环境。 首先,`gulp`是一个基于流的构建系统,它允许开发者通过编写简单的任务来处理文件流。其核心...
本篇文章将深入探讨如何在Java中使用FreeMarker生成带有盖章的PDF合同文件。 首先,让我们了解FreeMarker的基本概念。FreeMarker是一个基于模板的语言,它与Java代码分离,允许开发者用简单的模板语法来表示数据。...
FreeMarker是一个强大的、轻量级的模板语言,常用于Java应用中的视图层渲染。 首先,理解FreeMarker的基本概念。FreeMarker是一个基于模板的Java库,它允许开发者将静态模板语言与动态数据结合,生成HTML、XML或...
1. **工具代码**:在Java项目中,我们需要引入FreeMarker库(freemarker.jar)并创建一个FreeMarker配置对象,用来加载模板文件和设置全局变量。以下是一个简单的示例: ```java import freemarker.template....
总的来说,通过Java、FreeMarker和Apache POI的结合,我们可以高效地生成包含动态内容的Word文档,无论是文字、表格还是图片,都能轻松实现动态生成。这在处理大量个性化报告或数据分析时非常有用,大大提高了开发...
Freemarker是一个强大的Java模板引擎,常用于Java Web开发中,用于动态生成HTML或其他类型文本。它是基于模板的,允许开发者将逻辑与呈现分离,使前端界面更加灵活和可维护。下面将详细介绍Freemarker的一些核心概念...
本篇文章将深入探讨如何利用FreeMarker在Java环境中实现对Word文档的操作。 一、FreeMarker简介 FreeMarker是一个基于模板的语言,其主要目标是将数据模型与展示逻辑分离。在Java应用中,开发者通常会创建一个数据...
2. **配置Freemarker**:在Java项目中,你需要引入`Freemarker`库,并配置相应的设置,如模板路径、数据模型等。创建一个`Template`对象,加载HTML模板文件。 3. **构建数据模型**:根据业务需求,创建一个数据模型...
**Freemarker模板** 是一个强大的Java模板引擎,用于动态生成文本输出,如HTML、XML或PDF。它支持变量替换、控制结构(如if/else)和复杂的逻辑,使得开发者能以模板语言编写静态部分,而动态数据则由程序在运行时...
1. **Freemarker基础知识**:Freemarker是一个基于模板的语言,它允许开发者通过定义模板文件,然后结合Java对象数据,生成动态内容。模板文件中包含了一系列控制结构(如条件语句、循环)和变量引用,这些变量可以...