`
vtrtbb
  • 浏览: 362429 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

freemaker自定义方法

阅读更多

模板:

<html>
 <head>
  <title>Hello Word</title>
 </head>
 <body>
<#list _NewsList.findUserList("sss") as person>
	<li>${person.username}--${person.age}--${person.money}</li>  	
</#list>
 </body>
</html>

 

java代码:

public class MakerHtml {
	private Configuration cfg;
	
	public Configuration getCfg() {
		return cfg;
	}
	
	public void init() throws Exception {
		cfg = new Configuration();
		BeansWrapper wrapper = (BeansWrapper) BeansWrapper.BEANS_WRAPPER;
		wrapper.setExposureLevel(BeansWrapper.EXPOSE_ALL);
		InputStream in = null;
		try {
			in = this.getClass().getClassLoader().getResourceAsStream("freemarkerstatic.properties");
			if (in != null)	{
				Properties props = new Properties();			
				props.load(in);				
				Enumeration en = props.keys();
				String name, value;
				TemplateHashModel staticModels = wrapper.getStaticModels();				
				while (en.hasMoreElements()) {
					name = (String) en.nextElement();
					value = props.getProperty(name);					
					TemplateHashModel tempStatics = (TemplateHashModel) staticModels.get(value);
					cfg.setSharedVariable(name, tempStatics);
				}
			}
		} catch (Exception ex) {

		} finally {
			if (in != null){
				try {
					in.close();
				} catch (Exception ex) {
					ex.printStackTrace();					
				}
			}
		}
		cfg.setObjectWrapper(wrapper);	
		cfg.setDirectoryForTemplateLoading(new File("build"));
	}
	
	public static void main(String[] args) throws Exception {
		MakerHtml obj = new MakerHtml();
		obj.init();
		Map root = new HashMap();
		Template t = obj.getCfg().getTemplate("Test1.ftl");
		Writer out = new OutputStreamWriter(new FileOutputStream("Test1.html"), "GBK");
		t.process(root, out);
		System.out.println("Successfull");
		}
	
}

 

 

public class Person {

	private String username;
	private int age;
	private double money;
	
	public Person() {
		super();
	}
	
	public Person(String username, int age, double money) {
		super();
		this.username = username;
		this.age = age;
		this.money = money;
	}


	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public double getMoney() {
		return money;
	}
	public void setMoney(double money) {
		this.money = money;
	}
}

 freemarkerstatic.properties 文件:

 

_Validator=com.njy.freemarker.maker
_Functions=com.njy.freemarker.maker
_EscapeUtils=com.njy.freemarker.maker
_NewsList=com.njy.freemarker.maker

 

0
0
分享到:
评论

相关推荐

    springsecurity(用spring ibatis freemaker 用户自定义)实现的权限管理页面

    springsecurity(用spring ibatis freemaker)实现的用户自定义的权限管理页面, 里头包括数据库脚本 和原数据 和原代码 主要参考http://blog.csdn.net/k10509806/article/details/6369131 这个人的文章做的

    FREEMARK自定义方法

    在 Freemaker 中,可以通过实现 `TemplateMethodModel` 接口来创建自定义方法。这些自定义方法可以在模板中通过 `${object.method(args)}` 的形式被调用。其中,`object` 是指实现了 `TemplateMethodModel` 接口的 ...

    java代码生成器(Freemaker)

    在这个场景中,我们关注的是一个基于FreeMarker(Freemaker)的Java代码生成器。FreeMarker是一个强大的、轻量级的模板引擎,主要用于生成动态Web内容,但在Java世界里,它也被广泛用于生成源代码、配置文件等静态...

    freemaker简单小例子+ECharts例子

    在本示例中,“freemaker简单小例子”可能是指如何在Freemarker模板中插入动态数据并渲染成页面。基本流程包括以下几个步骤: 1. **创建Freemarker模板**:在`.ftl`文件中,你可以定义HTML结构,并使用`${...}`或`...

    freemaker 中文文档

    1. **宏**: FreeMarker的宏类似于HTML中的自定义标签,可以复用代码。 2. **包含其他模板**: 使用`&lt;#include&gt;`可以在一个模板中嵌入另一个模板的内容。 3. **条件语句和循环**: FreeMarker支持`&lt;#if&gt;`、`&lt;#else&gt;`...

    freemaker 中文开发手册

    无论是基础的条件判断、循环遍历,还是高级的自定义方法与Transforms,Freemarker都提供了丰富的功能来满足不同的需求。通过本章的介绍,希望能够帮助开发者快速掌握Freemarker的核心用法,并能够在实际项目中灵活...

    Freemaker_入门+深入+开发指南+学习笔记

    4. **函数与方法调用**:模板中可以调用对象的方法和使用内置函数,如`date?string('yyyy-MM-dd')`将日期格式化。 二、Freemaker深入理解 1. **模板继承与导入**:Freemaker支持模板继承,通过`&lt;#import&gt;`和`...

    struts2.0 and freemaker

    2. **拦截器(Interceptor)**:拦截器是Struts2中的重要概念,它们允许开发者插入自定义的处理逻辑,如日志、权限检查等,这些逻辑可以在Action执行前后运行。 3. **配置灵活性**:Struts2的配置可以通过XML、注解...

    freemaker 简单实现

    FreeMaker是一款强大的模板引擎,常...在实际应用中,可能还会涉及缓存管理、模板错误处理、自定义指令等功能的使用。FreeMarker的强大之处在于其灵活性和扩展性,能够适应各种复杂的场景,为Java Web开发带来便利。

    springboot+freemaker+mybatis框架整合的后台管理系统

    springboot+freemaker+mybatis框架整合的案件后台管理系统,包含案件的excel批量添加,案件跟踪修改,案件每日和每月统计,权限管理(自定义角色)等; 相关技术关键字:springboot freemaker quartz mybatis mysql ...

    freemaker帮助文档

    - **自定义函数库**:用户可以创建自己的函数库,通过`&lt;#function&gt;`和`&lt;#assign&gt;`添加到模板环境中。 4. **文档资源**: - **.chi**文件:可能是Microsoft的CHI索引文件,用于快速查找帮助文档中的内容。 - **....

    freemaker 学习手册

    除此之外,FreeMarker还支持自定义输出转换规则,以满足特定的输出需求。 FreeMarker在处理XML数据方面也表现得非常出色。模板中的`&lt;#recurse&gt;`和`&lt;#visit&gt;`指令使遍历XML树变得简单易行。开发者可以直接在模板中...

    freeMaker_HL7toXMLorJSON.rar

    这些文件对于理解转换过程和自定义转换逻辑非常有用。 总的来说,这个压缩包提供了一个解决方案,帮助医疗信息系统处理和转化HL7格式的数据,使其能够适应XML或JSON的现代数据格式,从而提高数据交换的效率和兼容性...

    freemaker

    - **自定义标签库(Tag Libraries)**:FreeMarker支持自定义标签库,可以扩展其功能。 ### 使用FreeMarker的实际场景 - **Web开发**:在Java Web应用中,FreeMarker常作为视图层技术,与Spring MVC、Struts2等...

    freemaker学习资料

    15. **自定义函数**:通过`TemplateMethodModelEx`接口,可以实现自定义方法供模板调用,扩展模板语言的功能。 学习FreeMaker,不仅可以提升你的Web应用开发效率,还能让你更好地理解MVC模式下视图层的设计。通过...

    mybatis+freemake自定义代码生成文件CodeGenerator.zip

    FreeMarker模板语言允许用户灵活控制生成代码的格式和内容,比如可以自定义注释、方法名或者类结构。 这个自定义代码生成器的亮点在于其灵活性和可扩展性。用户不再局限于预设的模板,可以根据项目规范和业务需求...

    freemaker语法

    它使用模板和数据模型来生成最终输出,是MVC(Model-View-Controller)架构中的视图...使用FreeMarker文档(如提供的`freemaker.doc`)可以帮助深入学习和理解这些概念,从而更好地利用它来构建高效、灵活的模板系统。

    spring boot 和 freemaker 全局变量

    Spring MVC配置Freemarker全局变量,实现应用全路径

    深入浅出freemaker

    2. **自定义指令和函数**:如果你发现内置的指令和函数无法满足需求,可以通过实现`TemplateDirectiveModel`和`TemplateMethodModelEx`接口,创建自己的自定义指令和函数。 3. **模板缓存**:为了提高性能,...

Global site tag (gtag.js) - Google Analytics