`
prodream
  • 浏览: 106133 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

freemarker运用实例

    博客分类:
阅读更多
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应用实例和PPT

    FreeMarker是一款强大的、开源的模板引擎,主要用于生成...通过以上内容的学习,开发者不仅可以理解FreeMarker的基础知识,还能掌握在Struts2项目中实际运用FreeMarker的方法,从而提高Web应用的开发效率和代码质量。

    freemarker学习资料汇总

    通过阅读和理解这些文档,你将能够熟练掌握Freemarker的语法和应用,从而在实际项目中灵活运用这一强大的模板引擎,实现高效、可维护的视图层代码。无论是初学者还是经验丰富的开发者,这些资料都能提供宝贵的指导。

    Freemarker 自定义标签 简单案例

    在Freemarker配置中,我们要将`MyTag`类实例化并添加到`freemarker.Configuration`的`setCustomTags`或`setSharedVariable`方法中。 在提供的"TestFreemarkerDiy"示例中,可能包含了一个简单的自定义标签实现以及一...

    Freemarker2.3.16_带简单教程

    Freemarker是一款强大的开源模板引擎,常用于Java Web开发中生成动态HTML或其他格式的文本,如电子邮件、XML等。...学习并熟练运用Freemarker,将提升你的开发效率和代码质量,使你的应用表现层更加清晰、易于维护。

    FreeMarker 2.3.18

    - **基本语法及实例**:`freemarker基本语法及实例.mht`提供了一些基础示例,帮助初学者快速上手。 3. **FreeMarker的优点和缺点**: - **优点**:FreeMarker易于学习,模板语言简洁,支持多种数据类型,与Java...

    Freemarker网站静态化的实现实例源码(eclipse)

    Freemarker是一个强大的模板引擎,常用于Web应用中的视图层渲染,比如Spring MVC框架就广泛支持...通过学习和实践这个案例,开发者可以深入理解如何在实际项目中运用Freemarker进行静态化,提升网站性能和用户体验。

    spring与freemarker整合 示例源码

    在IT行业中,Spring框架是Java应用开发中的一个核心组件,它提供了一个全面的编程...通过这个示例源码,你可以了解到Spring与Freemarker整合的具体实现,以及在实际项目中如何运用这一组合来构建高效、灵活的Web应用。

    freemarker-api.rar_Freemarker java api_freemarker_freemarker api

    通过深入理解和熟练运用这些API,开发者可以构建出高效、可维护的视图层,提高Web应用的开发效率。提供的"freemarker api.pdf"文档应该包含了更多详细信息,如模板语法、API使用示例和最佳实践,对于学习和掌握...

    Freemarker开发文档以及技术手册资源

    通过这两个压缩包中的资源,开发者可以系统地学习Freemarker,并掌握如何在项目中运用这一技术,提高Web应用的效率和用户体验。同时,这份资料也能为解决实际问题提供思路和参考,对于提升个人或团队的技术能力...

    FreeMarker概述API

    FreeMarker是一个开源模板引擎,主要用于生成动态HTML、XML或其他格式的文本输出,广泛应用于Web开发...通过深入学习和熟练运用FreeMarker,你可以提高代码的可维护性和可扩展性,让Web应用的前端展示更加高效、简洁。

    freemarker 中文手册

    文档中的实例和示例代码将帮助你快速上手实践,从而更好地运用Freemarker到实际项目中。对于初学者,这是一份非常有价值的参考资料;对于有经验的开发者,它也能提供深入理解和解决问题的参考。 总之,“freemarker...

    利用freemarker制作的diamante生成器

    首先,它运用Java的反射机制来动态获取类的信息,包括类的属性、方法等元数据。反射允许程序在运行时检查并操作类和对象的内部属性,这为自动生成与这些元数据相关的代码提供了可能。然后,这些获取到的元数据与预先...

    FreeMarker教程中文版

    通过阅读“FreeMarker_Manual_zh_CN.pdf”,你将获得详尽的解释和实例,有助于快速上手并熟练运用FreeMarker进行实际项目开发。同时,这个中文版教程也降低了语言障碍,让国内开发者能更方便地学习和理解FreeMarker...

    FreeMarker手册(中文版)

    FreeMarker是一个模板引擎,它基于Java平台,用于生成文本输出,...整体而言,FreeMarker手册中文版为读者提供了一套完整的学习路径,使用户可以系统地学习和掌握FreeMarker的使用方法,并能够在实际开发中有效地运用。

    FreeMarker中英文帮助文档

    这些文档将帮助开发者从初学者到精通者逐步掌握FreeMarker的使用,理解其核心概念,并能够熟练地在项目中运用。无论是快速解决问题,还是深入学习模板引擎的内在机制,这份资源都将提供宝贵的支持。

    freeMarker例子

    这个"freeMarker例子"是一个实际的项目实例,它展示了如何在Web应用程序中集成并使用FreeMarker模板技术。下面将详细解释这个例子的主要组件和工作流程。 1. **FreeMarker模板语言(FTL)** FreeMarker模板语言是...

    freemarker权威版 网站静态化

    3. **环境(Environment)**:每个模板实例都关联一个环境对象,它封装了模板执行时的上下文信息,如数据模型、配置等。 4. **指令(Directives)**:类似于函数或控制结构,可以嵌套在模板中,用来组织模板内容或...

    structs实例(structs实例)

    这个压缩包文件很可能是包含了一些关于Struts框架的实际开发案例,帮助学习者更好地理解如何在实际项目中运用Struts。 在Struts框架中,`structs`一词可能指的是`struts.xml`配置文件,这是Struts2的核心配置文件,...

    Freemarker中文教程

    Freemarker是一款被广泛使用的模板引擎,主要用于生成HTML、XML或其他文本格式的输出,它基于Java语言...通过这些内容的详细学习,读者将能够掌握FreeMarker的强大功能,并能灵活地运用它来完成各种Web页面的生成工作。

    freemarker示例程序

    Freemarker是一个强大的Java模板引擎,常用于生成动态HTML、XML或其他格式的文本输出,尤其在Web应用中广泛使用。...通过学习和实践,你将能够熟练掌握Freemarker在实际项目中的运用,提升你的Web应用开发能力。

Global site tag (gtag.js) - Google Analytics