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

在java代码中引用freemark

阅读更多
以下是在java代码中引用freemark的代码片段
依赖的包spring3.0和freemark2.3.18(附件提供下载)
QuestionForm是以个普通的对象 替换成你自己对象即可


import java.io.*;
import java.util.*;

import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.core.io.support.ResourcePatternResolver;

import com.coderside.app.exam.web.*;

import freemarker.cache.FileTemplateLoader;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;

public class FreeMarkTools {

	/**存放模板文件夹的路径***/
	private static String baseDir = "classpath:conf/template";
	private static Configuration cfg = new Configuration();
	
	/**编码格式***/
	private static String charset = "UTF-8";

	public static void main(String[] args) {
		FreeMarkTools.TemplateFactory("test.ftl");

	}

	/**
	 * 根据路径获取模板
	 * @param path
	 * @return
	 */
	public static Template TemplateFactory(String path) {
		try {
			ResourcePatternResolver r = new PathMatchingResourcePatternResolver();
			Resource resource = r.getResource(baseDir);
			File file = new File(resource.getURI());
			FileTemplateLoader templateLoader = new FileTemplateLoader(file);
			cfg.setTemplateLoader(templateLoader);
			Template t = cfg.getTemplate(path, charset);
			return t;
		} catch (IOException e) {
			e.printStackTrace();
		}
		return null;
	}

	/**
	 * 根据指定的模板引用freenark生成字符串格式
	 * @param path
	 * @param root
	 * @return
	 * @throws TemplateException
	 * @throws IOException
	 */
	@SuppressWarnings("unchecked")
	public static String createHtml(String path, List<QuestionForm> root) throws TemplateException, IOException {
		Template t = TemplateFactory(path);
		ByteArrayOutputStream bos = null;
		StringBuffer sbuff = new StringBuffer();
		Map map = null;
		for (QuestionForm qf : root) {
			bos = new ByteArrayOutputStream();
			map = new HashMap();
			map.put("qf", qf);
			map.put("id", qf.getQuestionid());
			Writer out = new OutputStreamWriter(bos, charset);
			if (null != qf.getChooserItems()) {
				t.process(map, out);
				sbuff.append(new String(bos.toByteArray(), charset));
			}
		}

		return sbuff.toString();
	}



}


分享到:
评论

相关推荐

    freemark_java_test.rar_freeMark ja_freemark_java freemark

    1. **创建数据模型**:在Java代码中,你需要创建一个Map或自定义的Java对象,用来存储要展示的数据。例如,你可以设置键值对`map.put("name", "John");`来表示一个名为"John"的变量。 2. **加载模板**:使用`...

    freemark使用的简单demo

    - **创建数据模型**: 在Java代码中,你需要创建一个Map或自定义类实例,填充数据并将其传递给Freemarker。 - **设置Freemarker配置**: 创建`Configuration`对象,指定模板目录,并设置其他选项。 - **加载模板**:...

    freemarkerdemo 生成word 插入图片

    服务器端的Java代码负责处理业务逻辑,准备数据模型,然后使用Freemarker将这些数据模型渲染成Word文档。这个过程中可能需要使用到HTTP请求和响应,以及文件流处理,以便将生成的Word文档发送到客户端。 5. **模板...

    eclipse freemark插件

    “eclipse freemark插件”是为了在Eclipse中提供对FreeMarker模板语言的集成支持。安装此插件后,开发者可以在Eclipse中直接编写、调试和预览FreeMarker模板,极大地提高了工作效率。 该插件的安装方法相对简单:...

    freemark模板导出PDF

    - **构建数据模型**:在Java代码中准备数据,这可以是任何类型,如List、Map等,只要FreeMarker模板能识别并处理即可。 - **渲染模板**:使用FreeMarker API读取模板文件,结合数据模型渲染成HTML字符串。 - **...

    java带格式导出WORD文档

    4. **使用Java解析模板**:编写Java代码,加载FreeMarker模板,并传递必要的数据参数。通过FreeMarker的API,可以将填充好数据的模板转换为最终的Word文档。 ##### 2.4 示例代码 下面是一个简单的示例代码片段,...

    freemark学习资料(入门基础)

    这些对象可以在模板中引用,如 `${user}` 可以获取Map中的"user"键对应的值。可以使用 `[]` 运算符访问对象的属性,如 `${user[email]}`。 四、控制结构 1. 条件语句:FreeMarker支持`if`、`?if`、`&lt;#if&gt;`等语法来...

    freemark官方插件2

    模板语言则定义了如何在模板中引用和操作这些数据。 在FreeMarker 2.3.13中,可能会有以下一些关键知识点: 1. **指令(Directives)**:例如`#if`, `#foreach`, `#include`等,用于控制流程和组合模板内容。 2. *...

    FreeMark全部资料(14个文档)

    提供的实例可能是具体的模板文件和对应的Java代码,展示了如何创建数据模型,如何加载和配置FreeMarker,以及如何使用`Template`类将数据模型和模板结合生成输出。这些实例对于初学者来说非常有价值,可以帮助他们...

    freemark文档

    标题与描述均提到了“freemark文档”,这实际上是指FreeMarker——一种用于生成动态内容的模板引擎,尤其在Java环境中非常流行。FreeMarker允许开发者创建模板,这些模板能够结合数据模型来生成各种类型的文档,包括...

    Freemark 开发指南

    序列在Freemarker中对应于Java中的List或数组,是一种非键值对的集合。它可以存储一系列有序的元素,支持遍历和索引访问。例如,你可以使用`&lt;#list&gt;`指令来迭代序列中的每个元素,并进行相应的处理。 2. **哈希...

    freemark插件

    总的来说,"freemark插件"为Eclipse用户带来了专业的Freemarker开发工具集,通过其提供的各种特性,使得在Eclipse中编写和维护Freemarker模板变得更加轻松和高效。对于从事Java Web开发的人员,特别是那些频繁处理...

    freemarker根据word模板生成word的完整示例

    开发者首先需要准备XML模板,然后在Java代码中加载模板,创建数据模型,调用Freemarker的API进行模板处理,最后将生成的Word文档保存。通过这种方式,我们可以灵活地根据业务需求生成各种定制化的Word报告,而无需...

    FreeMark中文教程标签参考大全.rar

    FreeMarker是一个强大的Java模板引擎,常用于Web应用中的视图层,它允许开发者将业务逻辑与展示逻辑分离,使得前端人员可以专注于页面设计,而无需深入理解后端代码。本教程资料合集针对FreeMarker提供了详尽的中文...

    freemarker导出Excel、Word、HTMLdemo

    - 在Java代码中,使用`Freemarker`实例加载模板,创建`Configuration`对象,设置模板目录,然后创建`Template`对象。接着,创建`Map, Object&gt;`来存储数据模型,最后调用`Template`的`process`方法将数据合并到模板...

    基于Freemarker模板的代码生成器前台页面模板文件

    在开发过程中,这些FTL文件会与后台Java代码配合工作,后端通过Freemarker API将数据模型传递给前端模板,模板引擎负责解析和渲染模板,生成最终的HTML页面。此外,Freemarker支持自定义函数和指令,可以扩展其功能...

    freemark开发指南(入门)

    - **Sequence**:在Freemarker中,Sequence代表有序的数据集合,类似于Java中的List或数组。它可以包含任意类型的元素,如数字、字符串或自定义对象。 - **Hash**:Hash是键值对的集合,类似于Java中的Map。每个键...

    freemark开发指南

    - **直接调用Java对象的方法**:在模板中可以直接引用Java对象并调用其方法。 - **字符串处理**:Freemarker提供了多种字符串操作的内置方法。 - **sequences和hashes初始化**:在模板中初始化序列和哈希结构。 ...

Global site tag (gtag.js) - Google Analytics