Freemarker通过字符串变量创建模板
来源:互联网 发布:java 底层实现语言 编辑:程序博客网 时间:2024/05/23 02:21
在应用中,通过模板发邮件的功能,我们可以通过Freemarker来实现。
Freemarker通常是通过模板文件来创建Template对象的,而如果你的模板内容保存在数据库的话,那么,你需要自定义一个Loader来实现通过字符串变量创建模板。
注意,模板里参数的形式是:${user}, 不要漏了美元符号。
示例代码:
- /**
- * Created: 2007-2-1
- * Modified: 2007-2-1
- *
- * Author: Keven Chen
- */
- package freemarker.loader;
- import java.io.IOException;
- import java.io.Reader;
- import java.io.StringReader;
- import freemarker.cache.TemplateLoader;
- /**
- * @author Keven Chen
- * @version $Revision 1.0 $
- *
- */
- public class StringTemplateLoader implements TemplateLoader {
- private String template;
- public StringTemplateLoader(String template){
- this.template = template;
- if(template == null){
- this.template = "";
- }
- }
- public void closeTemplateSource(Object templateSource) throws IOException {
- ((StringReader) templateSource).close();
- }
- public Object findTemplateSource(String name) throws IOException {
- return new StringReader(template);
- }
- public long getLastModified(Object templateSource) {
- return 0;
- }
- public Reader getReader(Object templateSource, String encoding)
- throws IOException {
- return (Reader) templateSource;
- }
- }
- /**
- * Created: 2007-2-1
- * Modified: 2007-2-1
- *
- * Author: Keven Chen
- */
- package freemarker;
- import java.io.File;
- import java.io.OutputStreamWriter;
- import java.io.StringWriter;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.Map;
- import freemarker.loader.ClassPathTemplateLoader;
- import freemarker.loader.StringTemplateLoader;
- import freemarker.template.Configuration;
- import freemarker.template.Template;
- /**
- * @author Keven Chen
- * @version $Revision 1.0 $
- *
- */
- public class Test {
- public static void main(String[] args) throws Exception {
- Configuration cfg = new Configuration();
- cfg.setTemplateLoader(new StringTemplateLoader("欢迎:${user}"));
- cfg.setDefaultEncoding("UTF-8");
- Template template = cfg.getTemplate("");
- Map root = new HashMap();
- root.put("user", "Keven Chen");
- StringWriter writer = new StringWriter();
- template.process(root, writer);
- System.out.println(writer.toString());
- }
- }
转自:http://www.iteye.com/topic/39939
- Freemarker通过字符串变量创建模板
- FreeMarker解析字符串模板
- FreeMarker解析字符串模板
- 字符串作为freemarker模板
- freemarker 模板中定义变量
- 【转载】FreeMarker解析字符串模板
- Map变为字符串的FreeMarker模板实现
- 使用Freemarker替换Java字符串定义变量
- 【FreeMarker】【模板文件FTL】模板文件中定义变量
- Struts2解析FreeMarker模板中变量的顺序
- 【FreeMarker】【模板文件FTL】【参考文档】特殊变量
- FreeMarker基础入门知识5 -在模板中定义变量
- jquery freemarker模板设置变量每次循环加1
- 在java 用xml模板通过freemarker生成word文档
- freemarker 模板
- FreeMarker模板
- freemarker-模板
- 用freemarker做模板创建一个struts2自定义标签
- spring+ jcaptcha(spring框架下的彩色验证码)
- DotNet 经典面试题(在面试中提炼总结所出,面试的朋友必备)
- web前端界面心得
- SQL 支持两个分格符
- 谨以此文献给毕业1--5年的朋友
- Freemarker通过字符串变量创建模板
- 二叉树遍历
- ==和equals区别
- win7的全面评估
- WAIM2011参会归来
- Silverlight.XNA(C#)跨平台3D游戏研发手记:(二)四叉树遍历与人工智能A*算法在SLG移动路径范围测算中的应用
- Kaptcha,jCaptcha,simplecaptcha三者的区别
- 计算机与局域网的连接
- c++几个常用容器的方法总结