`

freemarker用字符串构建模版

    博客分类:
  • Java
 
阅读更多

 

代码:

import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
import java.io.StringWriter;
import java.util.HashMap;
import java.util.Map;

import freemarker.cache.TemplateLoader;
import freemarker.template.Configuration;
import freemarker.template.Template;

public class StringTemplateLoader implements TemplateLoader {

	private String template;

	public StringTemplateLoader(String template) {
		this.template = template;
		if (template == null) {
			this.template = "";
		}
	}

	public Object findTemplateSource(String name) throws IOException {
		return new StringReader(template);
	}

	@Override
	public long getLastModified(Object templateSource) {
		return 0;
	}

	public Reader getReader(Object templateSource, String encoding)
			throws IOException {
		return (Reader) templateSource;
	}

	public void closeTemplateSource(Object templateSource) throws IOException {
		((StringReader) templateSource).close();
	}

	public static void main(String[] args) throws Exception {
        Configuration cfg = new Configuration();
        cfg.setTemplateLoader(new StringTemplateLoader("..Hello,${user}!"));
        Map root = new HashMap();
        root.put("user", "Jack");
        StringWriter writer = new StringWriter();

        long start = System.currentTimeMillis();

        Template template = cfg.getTemplate("");
        template.process(root, writer);

        System.out.println(System.currentTimeMillis() - start);
        System.out.println(writer.toString());
    }


}

 

分享到:
评论

相关推荐

    freemarker模板

    4. **模板测试**: 可以使用FreeMarker提供的API编写单元测试,确保模板的正确性。 总结起来,FreeMarker是一款强大且灵活的模板引擎,它通过分离视图和逻辑,提高了Web开发的效率。理解和熟练运用FreeMarker的语法...

    freeMark语法

    - `join()`:将序列元素用指定字符连接成字符串。 ### 5. 数学运算 FreeMarker支持基本的数学运算,如加、减、乘、除和取余数: - `${a + b}`:加法。 - `${a - b}`:减法。 - `${a * b}`:乘法。 - `${a / b}`:...

    FreeMarker模板基本语法

    普通变量引用通常用于输出简单的字符串或者数值类型的数据。例如: ``` ${answer} ``` 输出结果为 `42`。 同时,还可以利用`?`操作符进行类型转换,例如: ``` ${answer?string} 输出 "42" --> ${answer?string...

    springmvc采用freemarker动态生成带图片的word

    5. SpringMVC控制器接收到请求后,将数据模型(包括Base64字符串)传递给Freemarker模板。 6. Freemarker根据模板和数据模型生成最终的Word文档。 7. 将生成的Word文档返回给客户端下载或在线预览。 这个项目的实现...

    excel 导出 freemarker

    1. 准备数据:根据模板结构,构建相应的Java对象或集合,这些对象将作为数据模型传递给FreeMarker。 五、生成Excel 1. 加载模板:使用`Configuration`对象加载FTL模板文件。 2. 模板渲染:将数据模型与模板结合,...

    EOS 中使用freemarker模板生成PDF文件导出

    4. **渲染模板为PDF**:使用Freemarker API,将模板和数据模型结合,生成HTML字符串。然后,借助PDF库(如iText或Apache FOP)将HTML转换为PDF文件。这个过程可能需要处理CSS样式、图片嵌入等问题。 5. **文件导出*...

    freemarker模板导出word循环图片表格源码和详细教程

    然后,配置Freemarker模板的路径,创建一个`Template`对象,用以加载模板文件。 在模板文件中,我们可以设计好Word的布局,包括表格和图片的位置。使用`<#foreach>`标签,可以遍历数据模型中的列表,动态插入图片。...

    Java模板引擎之FreeMarker

    首先,你需要从`Configuration`对象中获取模板,然后用它和数据模型一起生成字符串输出: ```java Template template = cfg.getTemplate("template.ftl"); Map, Object> model = new HashMap(); model.put("user", ...

    freemarker中文手册

    2. 数据模型:这是提供给Freemarker模板的数据源,通常由应用程序创建并传递给Freemarker,可以包含各种类型的对象,如字符串、数字、列表、地图等。 3. 模板处理:Freemarker引擎接收模板和数据模型,然后生成最终...

    freemarker实例,真实

    变量可以通过`${}`访问,例如`${username}`,支持基本的算术运算和字符串操作。表达式可以是简单的变量引用,也可以是复杂的Java表达式。 9. **模板继承和导入** Freemarker支持模板继承,可以定义一个基础模板,...

    freemarker-2.3.23jar

    4. **函数和方法**:Freemarker支持自定义函数和方法,可以使用内置的函数库,如字符串操作、数学计算等,也可以扩展自定义函数来满足特定需求。 5. **模板继承和导入**:通过`<#import>`和`<#extends>`,模板可以...

    freemarker+html生成pdf.zip

    例如,使用Flying Saucer,你可以创建一个`ITextRenderer`实例,设置其输出为PDF,然后用HTML字符串渲染。 6. **保存或输出PDF**:最后,将生成的PDF保存到文件系统,或者直接作为HTTP响应发送给用户。 在`java_...

    freemarker语法

    3. 日期值的插值同样根据默认格式转换为文本输出,也可以使用内建的字符串函数进行格式化。 4. 布尔值的插值会将表达式结果根据默认格式转换成文本输出,并支持自定义“真”、“假”的输出格式。 数字格式化的插值...

    freemarker

    - **Hello World**:一个简单的模板,展示如何输出字符串。 - **条件语句**:使用`<#if>`和`<#else>`展示条件分支。 - **循环**:`<#list>`用于遍历数组、列表或集合。 - **变量赋值**:`<#assign>`用于创建和修改...

    freemarkerdemo 生成word 插入图片

    3. **图片插入**:在生成的Word文档中插入图片,需要将图片转换为适合Word格式的数据,例如Base64编码的字符串。在Freemarker模板中,可以定义一个变量来存储这个编码,然后在Word模板中使用这个变量插入图片。 4. ...

    freemarker 简单项目示例

    - 使用Freemarker API创建`Template`对象,加载指定的模板文件。 - 创建一个`Configuration`对象,设置模板路径、字符编码等。 - 将数据模型与模板结合,调用`Template`对象的`process`方法生成HTML字符串。 6. ...

    freemarker生成xml示例

    5. **输出XML**:生成的XML字符串可以写入文件或直接用于其他操作。 通过上述步骤,你可以利用Freemarker动态生成XML文件。值得注意的是,Freemarker支持条件判断、循环、函数调用等多种复杂逻辑,使得XML生成更加...

    jdk1.8下可以使用的freemarker.jar

    加载模板文件,如`"index.ftl"`,然后用数据模型渲染成字符串: ```java Template template = cfg.getTemplate("index.ftl"); StringWriter writer = new StringWriter(); template.process(dataModel, writer)...

    freemarker 2.3.18 中文手册

    string`将非字符串转换为字符串,`?length`获取数组或集合的长度等。 5. **模板配置**:通过`freemarker.properties`配置文件,可以设置模板解析的全局行为,如模板的编码、错误处理模式、日期时间格式等。 6. **...

    java中freemarker实现对word的操作

    6. 模板处理:使用`Template`对象的`process`方法,将数据模型应用于模板,生成HTML字符串。 7. 转换为Word:利用Apache POI将生成的HTML转换回Word文档。 8. 保存结果:将转换后的Word文档写入文件系统。 五、注意...

Global site tag (gtag.js) - Google Analytics