在日常开发中,我们有时候需要发送短信、邮件等通知,但是这些通知的内容通常都是动态的,而且可能会发生变动,为了程序的灵活性,我们通常会将通知的内容配置在页面上,然后后台通过渲染这些模板,来获取具体的内容。而 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; }
执行结果:
相关推荐
NULL 博文链接:https://bijian1013.iteye.com/blog/2259856
freemarker实现自动补齐字符串。通过ftl模版文件(ftl文件为freemarker模版文件)的自定义标签实现自动补齐字符串。代码稍作修改便可左补齐右补齐左右补齐,可自定义设置补齐的字符串。测试通过java文件调用ftl文件...
主要使用在相似的字符串变量输出,比如某一个模块的所有字符串输出都必须是html安全的,这个时候就可以使用 该表达式 Freemarker代码 <#escape x as x?html> First name: ${firstName} <#noescape>Last ...
FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主要由...3,插值:即${...}或#{...}格式的部分,将使用数据模型中的部分替代输出 4,FTL指令:FreeMarker指定,和HTML标记类似,名字前加#予以区分,不会输出
Freemarker模板生成pdf+javaFreemarker模板生成pdf+javaFreemarker模板生成pdf+javaFreemarker模板生成pdf+javaFreemarker模板生成pdf+java
Freemarker_内置函数_数字、字符串、日期格式化.txt
NULL 博文链接:https://jsjxqjy.iteye.com/blog/2072705
FreeMarker概述 FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写 FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序 虽然FreeMarker具有一些编程的能力...
NULL 博文链接:https://hw1287789687.iteye.com/blog/2271501
通过程序生成PDF文件, wkhtmltox-0.12.3.2_msvc2013-win64.exe html-url
freemarker模板生成例子 可以根据表名生成其增删改查方法以及jsp页面,基于spirng,spring-mvc,mybatis .使用前请更改jdbc配置文件下的项目路径和数据库,生成后需要将controller上方注释复制到mybatisconfig中对应...
简单的实现了java使用freemarker模板技术导出word的简单功能,不喜勿喷,网上很多的不详细
通过springboot 整合freemarker模板引擎,自动发送html格式邮件
freemarker:我们将使用freemarker作为模板引擎
在项目中难免和各种数据报表打交道,如导出XX申请表,登记表,推荐表之类。就可以通过现有信息导出Word文档。基于Java语言来导出Word文档的方式也有很多种,如Jacob,Apache POI,Freemarker,PageOffice,java2word...
1.这是一个在根目录下的mail.properties文件中配好发送邮件地址和接收邮箱地址的实例,利用freeMarker模板作为展示,在测试类中提供配固定接收邮箱地址和手动输入接收邮箱地址两种方法进行发送试验,结果都能实现...
FreeMarker中文文档.pdf FreeMarker入门必修
freemarker生成word文档模板,配合文档使用,效果更佳。https://blog.csdn.net/xueshuiyy/article/details/86748009
最近在做一个出卷系统,需要通过试卷模板从数据库中抽取题目,然后按照模板的样式生成完整的试卷,包括试卷格式的排版和图片的写入。这是用freemarker模板生成word文档。里面包括完整代码和所需jar包。
FreeMarker(使用方法)FreeMarker(使用方法)FreeMarker(使用方法)FreeMarker(使用方法)很好的pdf书