`

Freemarker 自定义TemplateLoader解析字符串

 
阅读更多

  1. /** 
  2.  * Created: 2007-2-1 
  3.  * Modified: 2007-2-1 
  4.  *  
  5.  * Author: Keven Chen 
  6.  */  
  7. package freemarker.loader;  
  8.   
  9. import java.io.IOException;  
  10. import java.io.Reader;  
  11. import java.io.StringReader;  
  12.   
  13. import freemarker.cache.TemplateLoader;  
  14.   
  15. /** 
  16.  * @author Keven Chen 
  17.  * @version $Revision 1.0 $ 
  18.  * 
  19.  */  
  20. public class StringTemplateLoader implements TemplateLoader {  
  21.   
  22.     private String template;  
  23.       
  24.     public StringTemplateLoader(String template){  
  25.         this.template = template;  
  26.         if(template == null){  
  27.             this.template = "";  
  28.         }  
  29.     }  
  30.       
  31.     public void closeTemplateSource(Object templateSource) throws IOException {  
  32.         ((StringReader) templateSource).close();  
  33.     }  
  34.   
  35.     public Object findTemplateSource(String name) throws IOException {  
  36.         return new StringReader(template);  
  37.     }  
  38.   
  39.     public long getLastModified(Object templateSource) {  
  40.         return 0;  
  41.     }  
  42.   
  43.     public Reader getReader(Object templateSource, String encoding)  
  44.             throws IOException {  
  45.         return (Reader) templateSource;  
  46.     }  
  47.   
  48. }  
  49.   
  50. /** 
  51.  * Created: 2007-2-1 
  52.  * Modified: 2007-2-1 
  53.  *  
  54.  * Author: Keven Chen 
  55.  */  
  56. package freemarker;  
  57.   
  58. import java.io.File;  
  59. import java.io.OutputStreamWriter;  
  60. import java.io.StringWriter;  
  61. import java.util.Date;  
  62. import java.util.HashMap;  
  63. import java.util.Map;  
  64.   
  65. import freemarker.loader.ClassPathTemplateLoader;  
  66. import freemarker.loader.StringTemplateLoader;  
  67. import freemarker.template.Configuration;  
  68. import freemarker.template.Template;  
  69.   
  70. /** 
  71.  * @author Keven Chen 
  72.  * @version $Revision 1.0 $ 
  73.  * 
  74.  */  
  75. public class Test {  
  76.   
  77.     public static void main(String[] args) throws Exception {  
  78.         Configuration cfg = new Configuration();  
  79.         cfg.setTemplateLoader(new StringTemplateLoader("欢迎:${user}"));  
  80.         cfg.setDefaultEncoding("UTF-8");  
  81.   
  82.         Template template = cfg.getTemplate("");  
  83.           
  84.         Map root = new HashMap();  
  85.         root.put("user""Keven Chen");  
  86.           
  87.         StringWriter writer = new StringWriter();  
  88.         template.process(root, writer);  
  89.         System.out.println(writer.toString());        
  90.     }  
  91.   
  92. }  

分享到:
评论

相关推荐

    freemarker 自定义freeMarker标签

    FreeMarker提供了详细的日志输出,通过调整日志级别,你可以查看模板解析、执行的详细信息,这对于查找问题非常有用。 最后,关于标签的性能考虑,应避免在自定义标签中执行耗时操作,因为这会影响模板的渲染速度。...

    Freemarker操作字符串

    在本文中,我们将深入探讨如何使用FreeMarker来操作字符串。 FreeMarker的工作原理是将模板(HTML或XML文件)与数据模型(通常是Java对象)相结合,生成最终的输出。模板中包含了可替换的占位符,这些占位符由...

    Freemarker 自定义标签 简单案例

    2. **注册自定义标签**:在应用启动时,你需要将这个Java类注册到Freemarker的配置中,这样Freemarker在解析模板时就能识别并执行自定义标签。 例如,假设我们有一个名为`<@myTag>`的自定义标签,它接受一个参数`...

    freemarker实现自动补齐字符串

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

    freemarker自定义的通用分页指令(标签)源码和使用示例

    一个用FTL定义的非常通用数据分页指令,有源码,有使用示例。使用效果图可以参看本人博客中的相关文章:http://blog.csdn.net/qjyong/archive/2009/10/18/4693142.aspx

    spring mvc freemarker 自定义标签

    自定义标签是Freemarker的一个强大特性,它可以帮助我们更好地组织视图层代码,提高代码复用性,使得模板更加模块化。下面将详细介绍Spring MVC与Freemarker自定义标签的使用。 首先,我们需要了解Freemarker的基础...

    freemarker自定义分页标签宏

    在这个主题“freemarker自定义分页标签宏”中,我们将深入探讨如何在FreeMarker中创建自定义的分页标签宏,以便更有效地管理和展示大量数据。 首先,分页是一种常见的网页设计技术,用于将大量数据分割成小块,使...

    freemarker语法知识

    当表达式的计算结果为字符串、数字、日期或布尔值时,它们会被相应地处理和输出。 - **通用插值**(`${expr}`): - 字符串值:直接输出表达式的结果。 - 数字值:默认情况下,按照预设的格式(可通过`#setting`...

    freemarker如何解析文本内容

    纯java的文本解析模板,如可解析SQL语句,解析Excel中动态内容

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

    根据提供的文件信息,我们可以深入探讨Freemarker中的内置...以上是Freemarker中关于数字、字符串和日期格式化的内置函数的详细解析。通过这些内置函数,可以极大地简化模板中的数据处理逻辑,使得模板更加简洁、高效。

    Struts2、Spring、Freemarker自定义标签

    Freemarker支持条件判断、循环结构、内置函数,以及自定义标签,增强了模板的灵活性。与JSP相比,Freemarker通常被认为更简洁、易读且更易于维护。 将这三个框架结合使用,可以构建出高效、灵活的Java Web应用。...

    ant + freemarker + excel解析

    在这个"ant + freemarker + excel解析"的主题中,我们将深入探讨这三个技术以及它们如何协同工作来解析Excel文件。 首先,Ant是一个由Apache软件基金会开发的Java构建工具。它类似于Unix的make工具,但它是跨平台的...

    freemarker格式化缩进文本或include指令

    `<#include>`接受一个字符串参数,该参数是待包含模板的路径。包含的模板可以是相对路径,相对于当前模板的位置,也可以是绝对路径。通过`<#include>`,开发者可以将通用的部分(如头部、底部导航、侧边栏等)抽取到...

    实现通过jfinal框架自动扫描freemarker的自定义标签.zip

    本资源包的核心内容是教你如何在JFinal项目中实现FreeMarker自定义标签的自动扫描和注册,从而提升模板引擎的功能和灵活性。 首先,我们需要理解自定义标签的概念。在FreeMarker中,自定义标签允许开发者扩展其内置...

    Spring配置Freemarker视图解析器,配置多个视图解析器

    本篇文章将深入探讨如何在Spring中配置Freemarker视图解析器,以及如何配置多个视图解析器以实现更灵活的应用场景。 首先,让我们了解如何配置单个Freemarker视图解析器。在Spring的配置文件(如`...

    freemarker语法完整版

    - **字符串**: 由单引号或双引号括起来的文本。 - **数字**: 直接使用数值。 - **日期**: 通常从数据模型中获取。 - **布尔值**: `true` 或 `false`,常用于 `<#if...>` 结构中。 **2. Hashes(哈希表)** - ...

    freemarker java解析依赖工具类.zip

    这个"freemarker java解析依赖工具类.zip"文件似乎包含了用于处理Freemarker模板的Java源代码和实用工具类。下面将详细介绍Freemarker的基本概念、工作原理以及如何在Java中使用它。 Freemarker是一个基于模板的...

    Freemarker通用select下拉框

    Freemarker是一个强大的模板引擎,常用于Web应用中的视图层渲染,比如Spring MVC框架中的JSP替代技术。本示例关注的是如何在Freemarker(FTL)中创建一个通用的`select`下拉框,以满足各种Web界面中的下拉选择需求。...

    freemarker_常用内置函数

    Freemarker 提供了一些操作字符串的内置函数,用于操作字符串对象。 1. `substring(start,end)`:从一个字符串中截取子串。 2. `cap_first`:将字符串中的第一个单词的首字母变为大写。 3. `uncap_first`:将字符串...

Global site tag (gtag.js) - Google Analytics