-
-
-
-
-
-
- package freemarker.loader;
-
- import java.io.IOException;
- import java.io.Reader;
- import java.io.StringReader;
-
- import freemarker.cache.TemplateLoader;
-
-
-
-
-
-
- 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;
- }
-
- }
-
-
-
-
-
-
-
- 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;
-
-
-
-
-
-
- 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());
- }
-
- }
分享到:
相关推荐
FreeMarker提供了详细的日志输出,通过调整日志级别,你可以查看模板解析、执行的详细信息,这对于查找问题非常有用。 最后,关于标签的性能考虑,应避免在自定义标签中执行耗时操作,因为这会影响模板的渲染速度。...
在本文中,我们将深入探讨如何使用FreeMarker来操作字符串。 FreeMarker的工作原理是将模板(HTML或XML文件)与数据模型(通常是Java对象)相结合,生成最终的输出。模板中包含了可替换的占位符,这些占位符由...
2. **注册自定义标签**:在应用启动时,你需要将这个Java类注册到Freemarker的配置中,这样Freemarker在解析模板时就能识别并执行自定义标签。 例如,假设我们有一个名为`<@myTag>`的自定义标签,它接受一个参数`...
freemarker实现自动补...通过ftl模版文件(ftl文件为freemarker模版文件)的自定义标签实现自动补齐字符串。代码稍作修改便可左补齐右补齐左右补齐,可自定义设置补齐的字符串。测试通过java文件调用ftl文件显示结果。
一个用FTL定义的非常通用数据分页指令,有源码,有使用示例。使用效果图可以参看本人博客中的相关文章:http://blog.csdn.net/qjyong/archive/2009/10/18/4693142.aspx
自定义标签是Freemarker的一个强大特性,它可以帮助我们更好地组织视图层代码,提高代码复用性,使得模板更加模块化。下面将详细介绍Spring MVC与Freemarker自定义标签的使用。 首先,我们需要了解Freemarker的基础...
在这个主题“freemarker自定义分页标签宏”中,我们将深入探讨如何在FreeMarker中创建自定义的分页标签宏,以便更有效地管理和展示大量数据。 首先,分页是一种常见的网页设计技术,用于将大量数据分割成小块,使...
当表达式的计算结果为字符串、数字、日期或布尔值时,它们会被相应地处理和输出。 - **通用插值**(`${expr}`): - 字符串值:直接输出表达式的结果。 - 数字值:默认情况下,按照预设的格式(可通过`#setting`...
纯java的文本解析模板,如可解析SQL语句,解析Excel中动态内容
根据提供的文件信息,我们可以深入探讨Freemarker中的内置...以上是Freemarker中关于数字、字符串和日期格式化的内置函数的详细解析。通过这些内置函数,可以极大地简化模板中的数据处理逻辑,使得模板更加简洁、高效。
Freemarker支持条件判断、循环结构、内置函数,以及自定义标签,增强了模板的灵活性。与JSP相比,Freemarker通常被认为更简洁、易读且更易于维护。 将这三个框架结合使用,可以构建出高效、灵活的Java Web应用。...
在这个"ant + freemarker + excel解析"的主题中,我们将深入探讨这三个技术以及它们如何协同工作来解析Excel文件。 首先,Ant是一个由Apache软件基金会开发的Java构建工具。它类似于Unix的make工具,但它是跨平台的...
`<#include>`接受一个字符串参数,该参数是待包含模板的路径。包含的模板可以是相对路径,相对于当前模板的位置,也可以是绝对路径。通过`<#include>`,开发者可以将通用的部分(如头部、底部导航、侧边栏等)抽取到...
本资源包的核心内容是教你如何在JFinal项目中实现FreeMarker自定义标签的自动扫描和注册,从而提升模板引擎的功能和灵活性。 首先,我们需要理解自定义标签的概念。在FreeMarker中,自定义标签允许开发者扩展其内置...
本篇文章将深入探讨如何在Spring中配置Freemarker视图解析器,以及如何配置多个视图解析器以实现更灵活的应用场景。 首先,让我们了解如何配置单个Freemarker视图解析器。在Spring的配置文件(如`...
- **字符串**: 由单引号或双引号括起来的文本。 - **数字**: 直接使用数值。 - **日期**: 通常从数据模型中获取。 - **布尔值**: `true` 或 `false`,常用于 `<#if...>` 结构中。 **2. Hashes(哈希表)** - ...
这个"freemarker java解析依赖工具类.zip"文件似乎包含了用于处理Freemarker模板的Java源代码和实用工具类。下面将详细介绍Freemarker的基本概念、工作原理以及如何在Java中使用它。 Freemarker是一个基于模板的...
Freemarker是一个强大的模板引擎,常用于Web应用中的视图层渲染,比如Spring MVC框架中的JSP替代技术。本示例关注的是如何在Freemarker(FTL)中创建一个通用的`select`下拉框,以满足各种Web界面中的下拉选择需求。...
Freemarker 提供了一些操作字符串的内置函数,用于操作字符串对象。 1. `substring(start,end)`:从一个字符串中截取子串。 2. `cap_first`:将字符串中的第一个单词的首字母变为大写。 3. `uncap_first`:将字符串...