`
ayufox
  • 浏览: 273764 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

FreeMarker对Template的加载过程

阅读更多
        前一阵子在研究使用数据库来配置表现层的信息的技术可行性,由于之前已经使用FreeMarker封装了很多macro,很显然,
这些投资不能浪费,方案的选择上最终我确定在根据数据库的配置来动态生成Template,然后由FreeMarker引擎加载,那么
FreeMarker是如何加载Template的呢,是否能够支持非文件的Template的加载呢?
       通过源码分析,FreeMarker对Template的加载过程如下
       Configuration(getTemplate)-->TemplateCache(getTemplate)-->TemplateCache(loadTemplate)-->
TemplateLoader(getReader)
      再看看TemplateLoader的接口
   
java 代码
 
  1. public interface freemarker.cache.TemplateLoader  
  2. {  
  3.     Object findTemplateSource(String name) throws java.io.IOException;  
  4.     long getLastModified(Object source);  
  5.     Reader getReader(Object source, String name) throws java.io.IOException;  
  6.     void closeTemplateSource(Object source) throws java.io.IOException;  
  7. }  

   

      很显然,就技术而言,问题的关键就在于怎么实现自己的TemplateLoader了

   
分享到:
评论
2 楼 magice 2007-08-17  
为什么要把template放置到数据库中,美工做好的页面还要存入到数据库一次?!
1 楼 zinking 2007-04-04  
就这么多叙述我觉得意义不大

相关推荐

    Freemarker使用手册、api、中文版教程

    3.4、加载模板................................................................................. 17 3.5、异常处理................................................................................. 19 四...

    JFinal 是基于 Java 语言的极速 WEB + ORM + AOP + Template Engine 框架.rar

    自动加载修改后的 Java 文件,开发过程中无需重启服务 AOP 支持,拦截器配置灵活,功能强大 Plugin 体系结构,扩展性强 多视图支持,支持 Enjoy、FreeMarker、JSP 强大的 Validator 后端校验功能 功能齐全,...

    Freemarker教程_中文版.pdf

    1.3、获取模版(template)..................................................................5 1.4、把模版与数据模型合并...................................................................6 1.5、完整的...

    JAVA 极速WEB+ORM框架 JFinal

    自动加载修改后的java文件,开发过程中无需重启web server AOP支持,拦截器配置灵活,功能强大 Plugin体系结构,扩展性强 多视图支持,支持FreeMarker、JSP、Velocity 强大的Validator后端校验功能 功能齐全,...

    jfinal demo 3.2

    自动加载修改后的java文件,开发过程中无需重启web server AOP支持,拦截器配置灵活,功能强大 Plugin体系结构,扩展性强 多视图支持,支持FreeMarker、JSP、Velocity 强大的Validator后端校验功能 功能齐全,...

    JFinal极速WEB+ORM框架 v5.1.1

    自动加载修改后的 Java 文件,开发过程中无需重启服务 AOP支持,拦截器配置灵活,功能强大 Plugin 体系结构,扩展性强 多视图支持,支持 Enjoy、FreeMarker、JSP、Velocity 强大的 Validator 后端校验功能 功能齐全...

    jfinal 基于 Java 语言的极速 WEB + ORM 框架

    自动加载修改后的 Java 文件,开发过程中无需重启服务 AOP支持,拦截器配置灵活,功能强大 Plugin 体系结构,扩展性强 多视图支持,支持 Enjoy、FreeMarker、JSP、Velocity 强大的 Validator 后端校验功能 功能齐全...

    Struts2属性文件详解

    该属性指定视图主题所需要模板文件的位置, 该属性的默认值是template,即默认加载template路径下的模板文件. struts.ui.templateSuffix 该属性指定模板文件的后缀,该属性的默认属性值是ftl.该属性还允许使用ftl、vm...

    Struts课堂笔记.rar--struts2的struts.properties配置文件详解

    struts自动加载的一个配置文件列表 struts.configuration.xml.reload Whether to reload the XML configuration or not 是否加载xml配置(true,false) struts.continuations.package The package containing ...

    Struts2\constant应用

    该属性指定视图主题所需要模板文件的位置,该属性的默认值是template,即默认加载template路径下的模板文件。 struts.ui.templateSuffix 该属性指定模板文件的后缀,该属性的默认属性值是ftl。该属性还允许使用...

    前端HTML模板解析引擎domTemplate.js.zip

    下图:对比服务器页面渲染和使用domTemplate前端引擎开发流程 服务器端模板解析 domTemplate前端解析 用法 导入jquery.js或者...

    poetry-web:一个唐宋诗词简单展示的web项目

    web模板采用freeMarker,以及ajax加载 页面由vue重构: : ,原页面依旧保留 查询实现 1. mysql全文索引 模糊查询通过mysql建立全文索引,未使用分词器,将最小分词数转换2: [mysqld] innodb_ft_min_token_size=2 ...

    jfinal:JAVA WEB + ORM框架

    JAVA极速WEB + ORM框架JFinal JFinal是基于Java语言的...开发过程中无需重启服务AOP支持,拦截器配置灵活,功能强大插件体系结构,扩展性强多视图支持,支持Enjoy,FreeMarker,JSP,Velocity强大的Validator初步验证功

    cms后台管理

    三 首页的加载过程 在浏览器中输入http://localhost:8080/jeecms,回车 首先进入配置文件web.xml, <context-param> <param-name>contextConfigLocation</param-name> <!----> <param-value> /WEB-INF/...

    好用的代码生成源码

    在temppate目录创建一个文件,如${className}SpringControler.java 则代码生成器会自动将该模板文件加载并生成该文件 充分利用各种文件的注释 如在.xml中我们可以使用 在.properties文件中我们可以使用 #generator-...

    springboot参考指南

    MongoDBTemplate iii. 29.2.3. Spring Data MongoDB仓库 iii. 29.3. Gemfire iv. 29.4. Solr i. 29.4.1. 连接Solr ii. 29.4.2. Spring Data Solr仓库 v. 29.5. Elasticsearch i. 29.5.1. 连接Elasticsearch ii. ...

    JAVA上百实例源码以及开源项目

     关于数字签名:产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥...

    JAVA上百实例源码以及开源项目源代码

    Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个...

    java开源包1

    Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...

    java开源包11

    Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...

Global site tag (gtag.js) - Google Analytics