freemarker的中文乱码问题,在项目过程总是遇到,记录下来,方便以后运用。项目中两处用到freemarker,一是邮件发送静态页面。二是做统计时,要用flash的饼图和柱状图显示,在网上找到一个,只需要让配置的xml动态变化,用freemarker动态生成其配置文件。首先,freemarker是支持国际化的,模板的文件名如:bargain_zh_CN.ftl,要加上_zh_CN。把写的程序贴上来方便查。
public class TemplateConfiguration {
/**
* 传入装有信息的root,模板文件所在的路径pah和模板文件名fileName
* 返回的是经过map信息改变后的摸板内容
*/
public static String getEmailContext(Map root,String path,String fileName) throws Exception{
Configuration cfg = new Configuration();
cfg.setEncoding(Locale.getDefault(), "UTF-8");
cfg.setDirectoryForTemplateLoading(new File(path));
cfg.setObjectWrapper(new DefaultObjectWrapper());
cfg.setCacheStorage(new freemarker.cache.MruCacheStorage(20,250));
Template temp = cfg.getTemplate(fileName);
temp.setEncoding("UTF-8");
java.io.StringWriter stringWriter = new StringWriter();
Writer out = new BufferedWriter(stringWriter);
temp.process(root, out);
out.flush();
//System.out.println(stringWriter.toString());
return stringWriter.toString();
}
/*
* 获取信息生成flash配置文件的xml
*root 中为要要写入模板中的信息,path为模板所在路径,fileName为模板文件名
*outFile为生成文件的路径和文件名(*.xml,*.html,.......)
*/
public static void getTemplateContext(Map root,String path,String fileName,String outFile) throws Exception{
Configuration cfg = new Configuration();
cfg.setEncoding(Locale.getDefault(), "UTF-8");
cfg.setDirectoryForTemplateLoading(new File(path));
cfg.setObjectWrapper(new DefaultObjectWrapper());
cfg.setCacheStorage(new freemarker.cache.MruCacheStorage(20,250));
Template temp = cfg.getTemplate(fileName);
temp.setEncoding("UTF-8");
Writer writerFile = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile),"UTF-8"));
temp.process(root,writerFile);
writerFile.flush();
}
}
分享到:
相关推荐
5. 通用数据模型:FreeMarker 不是直接反射到 Java 对象,Java 对象通过插件式对象封装,以变量方式在模板中显示。 6. 为 Web 准备:在模板语言中内建处理典型 Web 相关任务(如 HTML 转义)的结构。 7. 智能的国际...
在Spring Boot框架中,Freemarker是一个常用的模板引擎,它允许开发者将静态模板与动态数据结合起来,生成HTML、XML、PDF等格式的输出。本文将详细介绍如何在Spring Boot项目中集成Freemarker,并通过示例代码进行...
- **模板内容**:示例中使用`${...}`包裹的占位符作为FreeMarker指令,将在渲染时被相应的数据替换。 - **数据模型**:定义了一个包含用户名称和最新产品的数据模型,该模型由开发者创建并通过FreeMarker传递给...
标题“velocity和freemarker的比较”涉及到的是两个在Java Web开发中常用的模板引擎——Velocity和FreeMarker。它们都是用于将静态模板与动态数据结合,生成HTML或其他类型的文本输出,常用于MVC(模型-视图-控制器...
3. Maven依赖:在项目中添加FreeMarker的Maven依赖,便于管理和构建。 六、学习资源 提供的"FreeMarker相关学习文档"可能包括模板语法详解、最佳实践、示例代码等内容,可以帮助初学者快速上手。通过阅读这些资料,...
Servlet 和 Freemarker 是两种在 Web 开发中常用的工具。Servlet 主要用于服务器端编程,处理 HTTP 请求并生成响应,而 Freemarker 是一个模板引擎,它允许开发者将逻辑和视图分离,使得页面呈现更加灵活。 Servlet...
FreeMarker的灵活性和强大的模板指令系统,使它成为许多大型项目首选的模板引擎。在学习和应用FreeMarker时,开发者需要对它的配置过程、模板语法、指令使用等细节有深入的理解,这样能够更加高效和准确地运用...
在这个"SSM框架freemarker的demo"中,我们将探讨如何在SSM项目中集成并使用FreeMarker作为视图层模板引擎。FreeMarker是一个强大的、轻量级的、基于模板的技术,它允许开发者将逻辑与表现分离,提高代码的可维护性和...
而FreeMarker和Shiro则分别是常用的模板引擎和安全框架,它们能帮助我们构建出功能强大且安全的Web应用。本文将详细讲解如何在SpringBoot项目中整合这两者。 **一、FreeMarker简介** FreeMarker是一个基于模板的...
Freemarker、Struts2和DWR是Java Web开发中常用的三个组件,它们分别负责不同的职责,协同工作可以构建出高效、动态的Web应用程序。在这个实例中,我们将深入理解这三个技术,并通过具体配置来了解它们如何协同工作...
你可以将其添加到Java项目的类路径中,以便在代码中使用Freemarker进行模板处理。 2. **freemarker-2.3.23-sources.jar**:这个文件包含的是Freemarker 2.3.23版本的源代码,对于开发者来说非常有用,可以方便地...
Freemarker和Sitemesh是两个在Web开发中常用的开源技术。Freemarker是一个模板引擎,主要用于生成动态HTML或其他文本格式的输出,而Sitemesh则是一个页面布局和装饰框架,用于统一网站的外观和感觉。这两者的整合...
1. 创建新项目:在IntelliJ IDEA中选择Spring Initializr,配置项目基本信息,包括Group、Artifact、Version等,并勾选Spring Web、MyBatis、Freemarker等相关依赖。 2. 导入源码:导入下载的项目源码,IDEA会自动...
1. 添加依赖:确保你的项目中包含了Freemarker的依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org.springframework.boot <artifactId>spring-boot-starter-freemarker ``...
在Java开发中,我们经常需要处理数据的导出工作,其中Excel是最常用的数据展示和交换格式之一。FreeMarker是一款强大的模板引擎,常用于生成动态HTML、XML等文档,但也可以扩展到生成Excel文件。本教程将详细介绍...
Java FreeMarker 模板生成Word动态表格是一种在Java开发中常用的技术,用于生成基于模板的复杂文档,特别是当需要创建包含动态数据的Word表格时。FreeMarker是一个强大的模板引擎,它与Java代码分离,允许开发者使用...
Freemarker是一个强大的模板引擎,常用于Java应用中生成动态内容,如HTML、XML、Excel、Word等。它采用简单的文本模板语言,使得非程序员也能...记得在实际项目中,根据具体需求调整模板和数据模型,以达到最佳效果。
JAR文件(如`freemarker.jar`)可以直接在Java项目中引用,用于集成Freemarker引擎。 4. **集成到Java项目**: - 将`freemarker.jar`添加到项目的类路径中,可以通过Maven或Gradle等构建工具管理依赖。 - 创建`...
- **2.1 基本内容**:解释了FreeMarker中数值的基本概念。 - **2.2 类型**:深入探讨了FreeMarker支持的各种数据类型,包括但不限于字符串、数字、日期等。 ##### 第三章 模板 - **3.1 总体结构**:描述了...
- `BeansWrapper`:用于包装Java对象,使其在FreeMarker中可用。 5. **异常处理** - `TemplateException`:FreeMarker在处理模板时抛出的异常,通常由语法错误或数据模型问题引起。 - `...