`
shenkun_918
  • 浏览: 27432 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

项目中用到的freemarker

阅读更多

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();
	}
	 
}
 
分享到:
评论

相关推荐

    Freemarker简介及标签详解大全

    5. 通用数据模型:FreeMarker 不是直接反射到 Java 对象,Java 对象通过插件式对象封装,以变量方式在模板中显示。 6. 为 Web 准备:在模板语言中内建处理典型 Web 相关任务(如 HTML 转义)的结构。 7. 智能的国际...

    SpringBoot中整合freemarker示例代码

    在Spring Boot框架中,Freemarker是一个常用的模板引擎,它允许开发者将静态模板与动态数据结合起来,生成HTML、XML、PDF等格式的输出。本文将详细介绍如何在Spring Boot项目中集成Freemarker,并通过示例代码进行...

    freemarker中文手册.pdf

    - **模板内容**:示例中使用`${...}`包裹的占位符作为FreeMarker指令,将在渲染时被相应的数据替换。 - **数据模型**:定义了一个包含用户名称和最新产品的数据模型,该模型由开发者创建并通过FreeMarker传递给...

    velocity和freemarker的比较

    标题“velocity和freemarker的比较”涉及到的是两个在Java Web开发中常用的模板引擎——Velocity和FreeMarker。它们都是用于将静态模板与动态数据结合,生成HTML或其他类型的文本输出,常用于MVC(模型-视图-控制器...

    FreeMarker相关学习文档

    3. Maven依赖:在项目中添加FreeMarker的Maven依赖,便于管理和构建。 六、学习资源 提供的"FreeMarker相关学习文档"可能包括模板语法详解、最佳实践、示例代码等内容,可以帮助初学者快速上手。通过阅读这些资料,...

    Servlet + Freemarker 入门练习

    Servlet 和 Freemarker 是两种在 Web 开发中常用的工具。Servlet 主要用于服务器端编程,处理 HTTP 请求并生成响应,而 Freemarker 是一个模板引擎,它允许开发者将逻辑和视图分离,使得页面呈现更加灵活。 Servlet...

    FreeMarker模版

    FreeMarker的灵活性和强大的模板指令系统,使它成为许多大型项目首选的模板引擎。在学习和应用FreeMarker时,开发者需要对它的配置过程、模板语法、指令使用等细节有深入的理解,这样能够更加高效和准确地运用...

    SSM框架freemarker的demo

    在这个"SSM框架freemarker的demo"中,我们将探讨如何在SSM项目中集成并使用FreeMarker作为视图层模板引擎。FreeMarker是一个强大的、轻量级的、基于模板的技术,它允许开发者将逻辑与表现分离,提高代码的可维护性和...

    springboot集成freemarker和shiro框架

    而FreeMarker和Shiro则分别是常用的模板引擎和安全框架,它们能帮助我们构建出功能强大且安全的Web应用。本文将详细讲解如何在SpringBoot项目中整合这两者。 **一、FreeMarker简介** FreeMarker是一个基于模板的...

    freemarker与struts配置实例和dwr实例

    Freemarker、Struts2和DWR是Java Web开发中常用的三个组件,它们分别负责不同的职责,协同工作可以构建出高效、动态的Web应用程序。在这个实例中,我们将深入理解这三个技术,并通过具体配置来了解它们如何协同工作...

    freemarker_lastest最新最全--文档+安装包+操作手册

    你可以将其添加到Java项目的类路径中,以便在代码中使用Freemarker进行模板处理。 2. **freemarker-2.3.23-sources.jar**:这个文件包含的是Freemarker 2.3.23版本的源代码,对于开发者来说非常有用,可以方便地...

    freemarker 与sitemesh 整合例子

    Freemarker和Sitemesh是两个在Web开发中常用的开源技术。Freemarker是一个模板引擎,主要用于生成动态HTML或其他文本格式的输出,而Sitemesh则是一个页面布局和装饰框架,用于统一网站的外观和感觉。这两者的整合...

    spring boot mybatis freemarker整合项目

    1. 创建新项目:在IntelliJ IDEA中选择Spring Initializr,配置项目基本信息,包括Group、Artifact、Version等,并勾选Spring Web、MyBatis、Freemarker等相关依赖。 2. 导入源码:导入下载的项目源码,IDEA会自动...

    Spring配置Freemarker视图解析器,前台页面全部使用freemarker渲染

    1. 添加依赖:确保你的项目中包含了Freemarker的依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org.springframework.boot <artifactId>spring-boot-starter-freemarker ``...

    excel 导出 freemarker

    在Java开发中,我们经常需要处理数据的导出工作,其中Excel是最常用的数据展示和交换格式之一。FreeMarker是一款强大的模板引擎,常用于生成动态HTML、XML等文档,但也可以扩展到生成Excel文件。本教程将详细介绍...

    Java freemarker 模板生成word动态表格

    Java FreeMarker 模板生成Word动态表格是一种在Java开发中常用的技术,用于生成基于模板的复杂文档,特别是当需要创建包含动态数据的Word表格时。FreeMarker是一个强大的模板引擎,它与Java代码分离,允许开发者使用...

    freemarker.jar freemarker架包 freemarker生成excel、word、html、xml简单例子

    Freemarker是一个强大的模板引擎,常用于Java应用中生成动态内容,如HTML、XML、Excel、Word等。它采用简单的文本模板语言,使得非程序员也能...记得在实际项目中,根据具体需求调整模板和数据模型,以达到最佳效果。

    freemarker-2.3.15.tar.gz

    JAR文件(如`freemarker.jar`)可以直接在Java项目中引用,用于集成Freemarker引擎。 4. **集成到Java项目**: - 将`freemarker.jar`添加到项目的类路径中,可以通过Maven或Gradle等构建工具管理依赖。 - 创建`...

    FreeMarker中文参考手册

    - **2.1 基本内容**:解释了FreeMarker中数值的基本概念。 - **2.2 类型**:深入探讨了FreeMarker支持的各种数据类型,包括但不限于字符串、数字、日期等。 ##### 第三章 模板 - **3.1 总体结构**:描述了...

    FreeMarker模板语言API

    - `BeansWrapper`:用于包装Java对象,使其在FreeMarker中可用。 5. **异常处理** - `TemplateException`:FreeMarker在处理模板时抛出的异常,通常由语法错误或数据模型问题引起。 - `...

Global site tag (gtag.js) - Google Analytics