例子,实现求字符串的长度。
import java.util.List; import freemarker.template.SimpleNumber; import freemarker.template.TemplateMethodModel; import freemarker.template.TemplateModel; import freemarker.template.TemplateModelException; public class StringLengthMethod implements TemplateMethodModel { public TemplateModel exec(List args) throws TemplateModelException { if (args.size() != 1) { throw new TemplateModelException("Wrong arguments"); } return new SimpleNumber(((String) args.get(0)).length()); } }
import java.io.File; import java.io.IOException; import java.io.Writer; import java.util.Map; import freemarker.template.Configuration; import freemarker.template.DefaultObjectWrapper; import freemarker.template.Template; import freemarker.template.TemplateException; /** * * 模板工具类 */ public class FreeMarkertUtil { /** * @param templatePath 模板文件存放目录 * @param templateName 模板文件名称 * @param root 数据模型根对象 * @param templateEncoding 模板文件的编码方式 * @param out 输出流 */ public static void processTemplate(String templatePath, String templateName, String templateEncoding, Map<?,?> root, Writer out){ try { Configuration config=new Configuration(); File file=new File(templatePath); //设置要解析的模板所在的目录,并加载模板文件 config.setDirectoryForTemplateLoading(file); //设置包装器,并将对象包装为数据模型 config.setObjectWrapper(new DefaultObjectWrapper()); //获取模板,并设置编码方式,这个编码必须要与页面中的编码格式一致 Template template=config.getTemplate(templateName,templateEncoding); //合并数据模型与模板 template.process(root, out); out.flush(); out.close(); } catch (IOException e) { e.printStackTrace(); }catch (TemplateException e) { e.printStackTrace(); } } }
import java.io.OutputStreamWriter; import java.util.HashMap; import java.util.Map; /** * * 客户端测试模板输入类 */ public class ClientTest { public static void main(String[] args) { Map<String,Object> root=new HashMap<String, Object>(); root.put("length", new StringLengthMethod()); FreeMarkertUtil.processTemplate("src/templates","demo01.ftl", "UTF-8", root, new OutputStreamWriter(System.out)); } }
模板文件demo01.ftl如下:
${length("取字符串长度")}
相关推荐
NULL 博文链接:https://zhenghuazhi.iteye.com/blog/1923544
里面 集合了 一个 简单的 Freemarker demo 代码 和一个 freemarker 自定义标签代码
spring mvc freemarker 自定义标签demo spring mvc 通过自定义的标签在jsp页面调用,初学,记录下做个备忘
一个用FTL定义的非常通用数据分页指令,有源码,有使用示例。使用效果图可以参看本人博客中的相关文章:http://blog.csdn.net/qjyong/archive/2009/10/18/4693142.aspx
FreeMarker内置函数讲解
freemarker内置函数[文].pdf
在jfinal的基础上,实现freemarker自定义标签的自动扫描和注册,本资源包不含jfinal框架,需在已有框架的基础上添加包中的代码,如需jfinal框架请自行到官网下载
java freemarker 常用内置函数
NULL 博文链接:https://asialee.iteye.com/blog/2062313
NULL 博文链接:https://renxin-327666062-qq-com.iteye.com/blog/1532731
Java用freemarker导出word例子详见我的博客
freemarker内置函数,有例子等,想学习freemarker的同学赶紧看看了 ,很有用的哦
freemarker模板生成例子 可以根据表名生成其增删改查方法以及jsp页面,基于spirng,spring-mvc,mybatis .使用前请更改jdbc配置文件下的项目路径和数据库,生成后需要将controller上方注释复制到mybatisconfig中对应...
包含freemarker中常用的字符串函数、日期格函数、sequence函数、Hash函数和浮点数字格式化输出等的介绍和相关实例,很好理解和掌握的
freemarker简单例子
一个初学者freemarker学习例子 一个初学者freemarker学习例子
本工程旨在演示Servlet和FreeMarker的使用。 本工程编码方式:UTF-8 查看相应博客:http://blog.csdn.net/gaohuanjie/article/details/36676799
spring mvc freemarker 简单例子