import java.io.InputStream;
import java.io.StringWriter;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.io.IOUtils;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import freemarker.cache.StringTemplateLoader;
import freemarker.template.Configuration;
public class Index {
public static void main(String[] arg) {
StringTemplateLoader STL = new StringTemplateLoader();
Configuration CONFIG = new Configuration();
CONFIG.setTemplateLoader(STL);
InputStream is = null;
try {
is = Index.class.getResourceAsStream("index.xml");
Document doc = DocumentHelper.parseText(IOUtils.toString(is));
List<Element> es = doc.selectNodes("sqls/sql");
for (Element e : es)
STL.putTemplate(e.attributeValue("id"), e.getTextTrim());
} catch (Exception e) {
throw new IllegalStateException(e);
} finally {
IOUtils.closeQuietly(is);
}
Map cond = new HashMap<String, Object>();
cond.put("userid", "'1'");
cond.put("tbl_main", "t_accountTransfer");
StringWriter sw = new StringWriter();
try {
//生成sql
CONFIG.getTemplate("queryAccountTransfers").process(cond, sw);
//打印
System.out.println(sw);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
freemarker: index.xml
<?xml version="1.0" encoding="UTF-8"?>
<sqls>
<sql id="queryAccountTransfers"><![CDATA[
<#assign where>
<#if date??>
and transferTime>=:date
</#if>
<#if date_end??>
and transferTime<=:date_end
</#if>
<#if money??>
and srcMoney>=:money
</#if>
<#if money_end??>
and srcMoney<=:money_end
</#if>
<#if scrAccountId??>
and srcAccountId=:scrAccountId
</#if>
<#if tgtAccountId??>
and tgtAccountId=:tgtAccountId
</#if>
</#assign>
<#assign where=where?trim>
select *
from ${tbl_main}
where isdelete=0 and userid=${userid}
${where}
]]></sql>
</sqls>
分享到:
相关推荐
FreeMarker是一款强大的、开源的模板引擎,主要用于生成...通过以上内容的学习,开发者不仅可以理解FreeMarker的基础知识,还能掌握在Struts2项目中实际运用FreeMarker的方法,从而提高Web应用的开发效率和代码质量。
通过阅读和理解这些文档,你将能够熟练掌握Freemarker的语法和应用,从而在实际项目中灵活运用这一强大的模板引擎,实现高效、可维护的视图层代码。无论是初学者还是经验丰富的开发者,这些资料都能提供宝贵的指导。
在Freemarker配置中,我们要将`MyTag`类实例化并添加到`freemarker.Configuration`的`setCustomTags`或`setSharedVariable`方法中。 在提供的"TestFreemarkerDiy"示例中,可能包含了一个简单的自定义标签实现以及一...
Freemarker是一款强大的开源模板引擎,常用于Java Web开发中生成动态HTML或其他格式的文本,如电子邮件、XML等。...学习并熟练运用Freemarker,将提升你的开发效率和代码质量,使你的应用表现层更加清晰、易于维护。
- **基本语法及实例**:`freemarker基本语法及实例.mht`提供了一些基础示例,帮助初学者快速上手。 3. **FreeMarker的优点和缺点**: - **优点**:FreeMarker易于学习,模板语言简洁,支持多种数据类型,与Java...
Freemarker是一个强大的模板引擎,常用于Web应用中的视图层渲染,比如Spring MVC框架就广泛支持...通过学习和实践这个案例,开发者可以深入理解如何在实际项目中运用Freemarker进行静态化,提升网站性能和用户体验。
在IT行业中,Spring框架是Java应用开发中的一个核心组件,它提供了一个全面的编程...通过这个示例源码,你可以了解到Spring与Freemarker整合的具体实现,以及在实际项目中如何运用这一组合来构建高效、灵活的Web应用。
通过深入理解和熟练运用这些API,开发者可以构建出高效、可维护的视图层,提高Web应用的开发效率。提供的"freemarker api.pdf"文档应该包含了更多详细信息,如模板语法、API使用示例和最佳实践,对于学习和掌握...
通过这两个压缩包中的资源,开发者可以系统地学习Freemarker,并掌握如何在项目中运用这一技术,提高Web应用的效率和用户体验。同时,这份资料也能为解决实际问题提供思路和参考,对于提升个人或团队的技术能力...
FreeMarker是一个开源模板引擎,主要用于生成动态HTML、XML或其他格式的文本输出,广泛应用于Web开发...通过深入学习和熟练运用FreeMarker,你可以提高代码的可维护性和可扩展性,让Web应用的前端展示更加高效、简洁。
文档中的实例和示例代码将帮助你快速上手实践,从而更好地运用Freemarker到实际项目中。对于初学者,这是一份非常有价值的参考资料;对于有经验的开发者,它也能提供深入理解和解决问题的参考。 总之,“freemarker...
首先,它运用Java的反射机制来动态获取类的信息,包括类的属性、方法等元数据。反射允许程序在运行时检查并操作类和对象的内部属性,这为自动生成与这些元数据相关的代码提供了可能。然后,这些获取到的元数据与预先...
通过阅读“FreeMarker_Manual_zh_CN.pdf”,你将获得详尽的解释和实例,有助于快速上手并熟练运用FreeMarker进行实际项目开发。同时,这个中文版教程也降低了语言障碍,让国内开发者能更方便地学习和理解FreeMarker...
FreeMarker是一个模板引擎,它基于Java平台,用于生成文本输出,...整体而言,FreeMarker手册中文版为读者提供了一套完整的学习路径,使用户可以系统地学习和掌握FreeMarker的使用方法,并能够在实际开发中有效地运用。
这些文档将帮助开发者从初学者到精通者逐步掌握FreeMarker的使用,理解其核心概念,并能够熟练地在项目中运用。无论是快速解决问题,还是深入学习模板引擎的内在机制,这份资源都将提供宝贵的支持。
这个"freeMarker例子"是一个实际的项目实例,它展示了如何在Web应用程序中集成并使用FreeMarker模板技术。下面将详细解释这个例子的主要组件和工作流程。 1. **FreeMarker模板语言(FTL)** FreeMarker模板语言是...
3. **环境(Environment)**:每个模板实例都关联一个环境对象,它封装了模板执行时的上下文信息,如数据模型、配置等。 4. **指令(Directives)**:类似于函数或控制结构,可以嵌套在模板中,用来组织模板内容或...
这个压缩包文件很可能是包含了一些关于Struts框架的实际开发案例,帮助学习者更好地理解如何在实际项目中运用Struts。 在Struts框架中,`structs`一词可能指的是`struts.xml`配置文件,这是Struts2的核心配置文件,...
Freemarker是一款被广泛使用的模板引擎,主要用于生成HTML、XML或其他文本格式的输出,它基于Java语言...通过这些内容的详细学习,读者将能够掌握FreeMarker的强大功能,并能灵活地运用它来完成各种Web页面的生成工作。
Freemarker是一个强大的Java模板引擎,常用于生成动态HTML、XML或其他格式的文本输出,尤其在Web应用中广泛使用。...通过学习和实践,你将能够熟练掌握Freemarker在实际项目中的运用,提升你的Web应用开发能力。