`

freemarker中使用String字符串作为模板

阅读更多

   在日常开发中,我们有时候需要发送短信、邮件等通知,但是这些通知的内容通常都是动态的,而且可能会发生变动,为了程序的灵活性,我们通常会将通知的内容配置在页面上,然后后台通过渲染这些模板,来获取具体的内容。而 freemarker 正好可以帮助我们来完整模板的渲染这一步。

需求:
    1、给定一个字符串模板,渲染出内容
    2、修改这个字符串模板,然后再次渲染

实现要点:
    1、模板的加载器需要使用 StringTemplateLoader
    2、模板不可使用 Configuration.getTemplate,而应该使用 new Template

    3、StringTemplateLoader 上的一段注释

 
完整代码如下:

@Test
	public void test001() throws Exception {
		String templateName = "hello-template";
		String templateValue = "hello,${name}";
		Configuration configuration = configuration();
		processTemplate(configuration, templateName, templateValue);
		// -------------------- 进行模板的修改 ------------------------
		templateValue = "hello,${name},我今年,${age}岁.";
		processTemplate(configuration, templateName, templateValue);
	}

	/**
	 * 解析模板
	 *
	 * @param configuration
	 * @param templateName
	 * @throws IOException
	 * @throws TemplateException
	 */
	private void processTemplate(Configuration configuration, String templateName, String templateValue) throws IOException, TemplateException {
		Map<String, Object> root = new HashMap<>(4);
		root.put("name", "你好");
		root.put("age", 25);
		StringWriter stringWriter = new StringWriter();
		Template template = new Template(templateName, templateValue, configuration);
		template.process(root, stringWriter);
		System.out.println(stringWriter.toString());
	}

	/**
	 * 配置 freemarker configuration
	 *
	 * @return
	 */
	private Configuration configuration() {
		Configuration configuration = new Configuration(Configuration.VERSION_2_3_27);
		StringTemplateLoader templateLoader = new StringTemplateLoader();
		configuration.setTemplateLoader(templateLoader);
		configuration.setDefaultEncoding("UTF-8");
		return configuration;
	}

 

执行结果:

 

  • 大小: 111 KB
  • 大小: 27.5 KB
分享到:
评论

相关推荐

    Freemarker操作字符串

    NULL 博文链接:https://bijian1013.iteye.com/blog/2259856

    freemarker实现自动补齐字符串

    freemarker实现自动补齐字符串。通过ftl模版文件(ftl文件为freemarker模版文件)的自定义标签实现自动补齐字符串。代码稍作修改便可左补齐右补齐左右补齐,可自定义设置补齐的字符串。测试通过java文件调用ftl文件...

    freemarker语法完整版

    主要使用在相似的字符串变量输出,比如某一个模块的所有字符串输出都必须是html安全的,这个时候就可以使用 该表达式 Freemarker代码 &lt;#escape x as x?html&gt; First name: ${firstName} &lt;#noescape&gt;Last ...

    freemarker语法知识

    FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主要由...3,插值:即${...}或#{...}格式的部分,将使用数据模型中的部分替代输出 4,FTL指令:FreeMarker指定,和HTML标记类似,名字前加#予以区分,不会输出

    Freemarker模板生成pdf+java

    Freemarker模板生成pdf+javaFreemarker模板生成pdf+javaFreemarker模板生成pdf+javaFreemarker模板生成pdf+javaFreemarker模板生成pdf+java

    Freemarker_内置函数_数字、字符串、日期格式化.txt

    Freemarker_内置函数_数字、字符串、日期格式化.txt

    FreeMarker 遍历list

    NULL 博文链接:https://jsjxqjy.iteye.com/blog/2072705

    FreeMarker模板设计指南

    FreeMarker概述 FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写 FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序 虽然FreeMarker具有一些编程的能力...

    freemarker如何判空容错

    NULL 博文链接:https://hw1287789687.iteye.com/blog/2271501

    通过freemarker模板 生成PDF

    通过程序生成PDF文件, wkhtmltox-0.12.3.2_msvc2013-win64.exe html-url

    freemarker模板生成例子

    freemarker模板生成例子 可以根据表名生成其增删改查方法以及jsp页面,基于spirng,spring-mvc,mybatis .使用前请更改jdbc配置文件下的项目路径和数据库,生成后需要将controller上方注释复制到mybatisconfig中对应...

    java使用freemarker模板技术导出word

    简单的实现了java使用freemarker模板技术导出word的简单功能,不喜勿喷,网上很多的不详细

    SpringBoot使用FreeMarker模板发送邮件

    通过springboot 整合freemarker模板引擎,自动发送html格式邮件

    freemarker:我们将使用freemarker作为模板引擎

    freemarker:我们将使用freemarker作为模板引擎

    Java项目中利用Freemarker模板引擎导出--生成Word文档

    在项目中难免和各种数据报表打交道,如导出XX申请表,登记表,推荐表之类。就可以通过现有信息导出Word文档。基于Java语言来导出Word文档的方式也有很多种,如Jacob,Apache POI,Freemarker,PageOffice,java2word...

    FreeMarker模板实现邮件发送

    1.这是一个在根目录下的mail.properties文件中配好发送邮件地址和接收邮箱地址的实例,利用freeMarker模板作为展示,在测试类中提供配固定接收邮箱地址和手动输入接收邮箱地址两种方法进行发送试验,结果都能实现...

    FreeMarker中文文档.pdf下载

    FreeMarker中文文档.pdf FreeMarker入门必修

    freemarker生成word文档模板

    freemarker生成word文档模板,配合文档使用,效果更佳。https://blog.csdn.net/xueshuiyy/article/details/86748009

    freemarker模板生成word文档完整代码

    最近在做一个出卷系统,需要通过试卷模板从数据库中抽取题目,然后按照模板的样式生成完整的试卷,包括试卷格式的排版和图片的写入。这是用freemarker模板生成word文档。里面包括完整代码和所需jar包。

    FreeMarker(使用方法)

    FreeMarker(使用方法)FreeMarker(使用方法)FreeMarker(使用方法)FreeMarker(使用方法)很好的pdf书

Global site tag (gtag.js) - Google Analytics