`
IT少年
  • 浏览: 74282 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

freemarker 初步认识

阅读更多
本人新手,没有牛逼的技术,只有一些井底之蛙的见解,如有好思路,好方法,请分享一下,本人不胜感激。   在我看来,freemarker 就是 可以作为展现层,让展现层更加抽象,同时也可以把一些动态的内容动态添加数据后 形成html文档或者一些html代码,


在我看来能做的工作,主要有,把你的ftl文件,或者字符串形式的带有ftl格式变量的字符串当做模板,同时经过处理把你存在map对象里的数据跟模板结合,然后把动态生成的内容输出到字符串变量里,或者输出到jsp,html页面里,
template 存放模板的类
configuration  配置类,
templateloader  定制自己的模板资源的类
下面是一个小例子可以参考
package fff;
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.template.Configuration; 
import freemarker.template.Template; 
import freemarker.template.TemplateException;

import java.io.IOException; 
import java.io.Reader; 
import java.io.StringReader; 
 
import freemarker.cache.TemplateLoader;

public class Test {

/**
* @param args
*/
public static void main(String[] args)throws Exception{
// TODO Auto-generated method stub
     Configuration cfg = new Configuration(); 
       cfg.setTemplateLoader(new StringTemplateLoader("欢迎:${user}")); 
        cfg.setDefaultEncoding("UTF-8"); 
 
        Template template =cfg.getTemplate("");
         
        Map root = new HashMap(); 
       // root.put("name", "Keven Chen"); 
       // root.put("password", "1234545");
        root.put("user", "wo");
         
        StringWriter writer = new StringWriter(); 
        try {
template.process(root, writer);
} catch (TemplateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();

        System.out.println(writer.toString());       
    }

}

class StringTemplateLoader implements TemplateLoader
//这个类是自己的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; 
        } 
}

    
     



分享到:
评论

相关推荐

    java个人总结模板.docx

    - 在联通116114门户网站开发项目中,作者学习了Freemarker和iBatis,并对统一框架有了初步认识。项目中实现了首页登录注册、公告、红段子短信发送等功能。 - 质检考评系统的开发与测试阶段,作者掌握了单元测试、...

    struts2权威指南--前三章

    尽管只有前三章,但这已经涵盖了Struts2的基础架构和核心概念,足以让初学者建立起对框架的初步认识。学习这部分内容,你可以了解如何构建基本的Action,掌握Struts2的配置机制,理解请求处理流程,并能够实现简单的...

    年终工作总结.docx

    通过与客户进行会议沟通,我掌握了需求调研的方法,使用AxureRP创建了初步原型,并根据反馈进行调整。在数据库设计阶段,我运用PowerDesigner规划了物理模型,确保数据结构的合理性。在系统开发阶段,我利用...

    springboot的一个简单注册登录demo

    **SpringBoot简介** ...通过这个简单的注册登录Demo,新手可以对SpringBoot的快速开发能力有初步认识,并且了解如何将SpringBoot与数据库、Web服务以及安全框架集成,为后续深入学习和实践SpringBoot打下基础。

    springboot259交通管理在线服务系统的开发.zip

    为了深入了解这个系统,我们需要查看压缩包内的具体文件,包括源代码、配置文件、文档等,才能对其实现细节有更清晰的认识。不过,以上内容已经为我们提供了一个关于交通管理在线服务系统开发的初步概览。

    struts入门最简单例子

    Struts2是一个强大的MVC...通过这个简单的案例,初学者可以对Struts2有初步的认识,为进一步学习和掌握Struts2的高级特性和最佳实践奠定基础。在实际开发中,你还可以探索更多的内容,如文件上传、国际化、异常处理等。

    springmvc入门代码项目

    通过这个简单的入门项目,你将对 Spring MVC 有一个初步的认识,并能动手实践,为后续深入学习打下坚实的基础。在实践中不断探索和理解 Spring MVC 的其他高级特性,如拦截器、AOP(面向切面编程)、数据绑定和验证...

Global site tag (gtag.js) - Google Analytics