实现的方式有两种:
一、写一个类继承TemplateMethodModel,比如说:
public class TruncateTemplateMethodModel implements TemplateMethodModel {
public Object exec(List arguments) throws TemplateModelException {
return arguments.get(0).toString().substring(0,1);
}
}
然后:
Map root = new HashMap();
root.put("truncate",new TruncateTemplateMethodModel();
Template temp = cfg.getTemplate("a.ftl");
StringWriter out = new StringWriter();
temp.process(root, out);
out.flush();
System.out.println(out.getBuffer().toString());
a.ftl为:${truncate("abc")}
运行后将会输出: a
二、若与spring集成的话,也很简单,只要在:*-servlet.xml中加入以下代码即可:
<bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="suffix" value=".ftl"/>
<property name="contentType" value="text/html;charset=gb2312"/>
<property name="exposeRequestAttributes" value="true"/>
<property name="exposeSessionAttributes" value="true"/>
<property name="attributesMap">
<map>
<entry key="truncate">
<bean class="com.com.linkage.cms.core.TruncateTemplateMethodModel" /></entry>
</map>
</property>
</bean>
然后: root.put("truncate",new TruncateTemplateMethodModel();
a.ftl为:${truncate("abc")}
运行后将会输出: a
分享到:
相关推荐
Freemarker模板中的`<#list>`指令用于遍历数据集合,`<#if>`、`<#else>`则用于条件判断,而`<@include>`可以包含其他公用部分的模板。 2. **EditPage.ftl**:编辑页面模板,用于展示和修改已有数据。通常会包含表单...
- 配置生成器:在配置文件(如generatorConfig.xml)中指定自定义模板的位置,使代码生成器使用新的模板进行生成。 2. **常用模板及作用**: - `Entity.java.ftl`:定义实体类的模板,包括字段、getter/setter...
在这个"freemarker模板使用"的讨论中,我们将深入探讨Freemarker的核心概念、语法以及如何在实际项目中进行图片插入。 1. **核心概念**: - **模板(Template)**:Freemarker模板是包含固定文本和变量的文本文件...
在Controller中,我们需要根据请求参数(如`page`)实例化`Pager`对象,获取当前页的数据并传递给FreeMarker模板。模板接收到数据后,通过调用`paging`宏生成分页HTML。 总结起来,FreeMarker自定义分页标签宏的...
在上述`FreemarkerDemo`项目中,你可能找到了类似的代码示例,包括Java代码(如`HelloWorldDirective`)和Freemarker模板文件(`.ftl`)。这个项目可能还包括了如何设置Spring MVC配置以支持自定义标签的步骤,以及...
它包含了如`className`、`tableName`、`classPath`和`properties`等属性,这些属性用于在模板中填充具体的数据,如类名、表名、类路径及属性列表,这些都是生成配置文件时所必需的信息。 #### 3. 基本类`...
5. **使用自定义标签**:完成上述步骤后,你就可以在FreeMarker模板中使用自定义标签了。在模板文件中,自定义标签通常以`<@yourTag>`的形式出现。 以下是实现这个功能的一些关键代码片段: ```java // 自定义标签...
压缩包中的“0109待确认稿-一种基于FREEMARKER模板的数据采集系统及采集方法.docx”很可能是一份详细的设计文档或技术报告,涵盖了系统的架构、实现步骤、使用的技术栈以及具体的数据采集和处理流程。文件名中的“待...
- **描述**: 提供了关于Freemarker的一些基本介绍,并且提到了如何在Freemarker模板语言(FTL)中调用自定义的方法。 ### 二、Freemarker自定义方法实现原理 Freemarker 是一个基于 Java 的模板引擎,用于生成文本...
6. **在模板中使用标签**: 最后,在你的FreeMarker模板文件中,你可以像使用其他内置标签一样使用你的自定义标签。 通过这种方式,开发者可以创建出高度定制的UI组件,提高代码的可读性和可维护性。自定义标签使得...
在Java开发中,利用FreeMarker生成Word文件可以极大地提高效率,尤其在需要批量生成或者自定义模板的情况下。以下是对这个主题的详细阐述: ### FreeMarker简介 FreeMarker是一个开源的、基于模板的Java库,它将...
在Struts2的Action类中,你可以创建一个Model对象,填充数据,然后在返回结果时,指定对应的Freemarker模板,如`return "success.ftl"`。 7. **模板变量和表达式** Freemarker支持丰富的表达式,如`${user.name}`...
在FreeMarker模板文件(例如`HelloWord.ftl`)中,你可以看到类似于`${variable}`这样的表达式,它们是FreeMarker的动态占位符。当你在Java代码中设置`variable`为具体值,FreeMarker在渲染时会将其替换为对应的值。...
- **分离视图和逻辑**: Freemarker模板与Java代码分离,使得开发人员可以专注于业务逻辑,而设计师可以专注于页面设计。 - **高性能**: Freemarker编译模板为高效的Java代码,执行效率高。 - **灵活性**: 支持...
在本示例中,“freemaker简单小例子”可能是指如何在Freemarker模板中插入动态数据并渲染成页面。基本流程包括以下几个步骤: 1. **创建Freemarker模板**:在`.ftl`文件中,你可以定义HTML结构,并使用`${...}`或`...
2. **模板语言**:Freemarker模板语言包括控制结构(如`<#if>`、`<#foreach>`)、逻辑表达式、变量引用(`${...}`)和内置函数。这些元素允许你根据数据模型动态生成输出。 3. **数据模型与变量**:Freemarker可以...
在Spring MVC配置中,我们需要指定Freemarker模板文件的位置,以便Spring MVC能够找到并加载它们。 五、模板缓存 Freemarker支持模板缓存,以提高性能。你可以根据项目需求配置是否启用缓存,以及缓存策略。 六、...
3. 标记:Freemarker模板中使用特定的标记(如`<#if>`、`<#foreach>`等)来控制流程,以及`${}`或`#{}`来表达变量。 二、Freemarker语法 1. 变量表达式:`${variable}`用于输出变量的值,`#{variable}`用于注释。 2...
9. 自定义方法:通过实现`TemplateMethodModel`接口,可以在模板中调用自定义方法,扩展Freemarker的功能。 三、Freemarker的高级特性 1. 链接和URL编码:Freemarker提供了`@url`指令和`?html`操作符,用于生成...
在实际应用中,开发者通常会将这个JAR文件添加到项目的类路径(classpath)中,以便在运行时能够解析和执行Freemarker模板。如果在Eclipse中使用,可以将该JAR文件添加到项目的构建路径,确保项目能正确识别并利用...