FreeMarker辅助

/**
 * FreeMarker 辅助类
 * @author Rubekid
 *
 */
public class FreeMarkerHelper {

    /**
     * 模板文件存放目录
     */
    private static final String TEMPLATE_PATH = "/templates/freemarker/";

    /**
     * 获取模板内容
     * @param tpl
     * @param rootMap
     * @return
     * @throws IOException
     * @throws TemplateException
     */
    public static String fetch(String tpl, Object rootMap) throws IOException, TemplateException{
        Template template = getTemplate(tpl);
        Writer out= new StringWriter();
        template.process(rootMap, out);
        String result = out.toString();
        out.flush();
        return result;
    }

    /**
     * 输出显示
     * @param tpl
     * @param rootMap
     * @param out
     * @throws IOException
     * @throws TemplateException
     */
    public static void display(String  tpl, Object rootMap, Writer out) throws IOException, TemplateException{
        Template template = getTemplate(tpl);
        template.process(rootMap, out);
        out.flush();
    }

    /**
     * 获取模板
     * @param tpl
     * @return
     * @throws IOException
     */
    private static Template getTemplate(String tpl) throws IOException{
        Configuration config = new Configuration();
        String path = WebUtils.getContextPath() + TEMPLATE_PATH;
        String name =  tpl;
        int pos = tpl.lastIndexOf("/");
        if(pos > -1){
            path += tpl.substring( 0, pos+1 );
            name += tpl.substring( pos+1 );
        }

        config.setDirectoryForTemplateLoading(new File(path));
        config.setObjectWrapper(new DefaultObjectWrapper());
        return  config.getTemplate(name ,"utf-8");
    }

    /**
     * 获取模板(通过字符串)
     * @param source
     * @throws IOException
     */
    private static Template getTemplate(String name, String source) throws IOException{
        Configuration config = new Configuration();
        StringTemplateLoader loader = new StringTemplateLoader();
        loader.putTemplate(name, source);
        config.setTemplateLoader(loader);
        return config.getTemplate(name, "utf-8");
    }
时间: 2024-08-07 00:51:35

FreeMarker辅助的相关文章

第一个spring、springmvc、mybatis、freemarker项目小知识(一)

1.持久层开发(Mybatis)    1.1 添加,非空字段必须给值,不是非空加判断,有值添加无值不添    1.2 删除,注意外键关系的级联删除.(事务传播行为)    1.3 更新,每个字段单独更新,只更新变化的值.    1.4 查询,多表查询首先确定主查询表,分析与辅助查询表的关系来确定使用内/外链接        1.4.1 外键关系:内连接                select a.*,b.* from tb_a a, tb_b b where a.id = b.id sel

Maven+SpringMVC+Freemarker入门Demo

1 参考http://blog.csdn.net/haishu_zheng/article/details/51490299,用第二种方法创建一个名为mavenspringmvcfreemarker的Maven工程. 2 文件目录结构如下图所示 3 在pom.xml中添加springmvc和freemarker的依赖包,添加完之后的完整内容为 [html] view plain copy <project xmlns="http://maven.apache.org/POM/4.0.0&q

Freemarker商品详情页静态化服务调用处理

--------------------------------------------------------------------------------------------- [版权申明:本文系作者原创,转载请注明出处] 文章出处:http://blog.csdn.net/sdksdk0/article/details/53151462 作者:朱培      ID:sdksdk0 ----------------------------------------------------

Freemarker 之 Java静态化 实例一

Freemarker是一种强大的web端模板技术,在当前Web开发中,SEO和客户端浏览速度尤为重要,其中将网页静态化是一个很好的解决方案.下面介绍Java中web开发结合Freemarker来实现静态化. 主要分为三步 1 准备好模板文件,如Test.ftl <html> <head> <title>${title}</title> <style type="text/css" link="${rccontextPath

Android联机或者模拟器单独测试Activity的辅助Activity示例开发

想起写个单独测试Activity的辅助Activity的原因是在联机测试的时候IDEA或者Android Studio中的指定运行Activity功能没法使用了. 下面付IDE中指定运行Activity的界面截图: 辅助Activity要做的事情是将辅助Activity作为启动的默认Activity,其主界面中以ListView的形式展示所有Activity,通过单击ListView的Item项来启动要测试的Activity. 1. 辅助Activity代码示例: package secondr

FreeMarker中的日期时间处理

1. FreeMarker中的日期时间格式设置 FreeMarker中可以分别对date.time.datetime三种类型的日期时间设置格式,例如: config.setDateTimeFormat("yyyy-MM-dd HH:mm:ss"); config.setDateFormat("yyyy-MM-dd"); config.setTimeFormat("HH:mm:ss"); 当我们对一个页面变量使用 ?date ?time ?date

Spring mvc 中使用ftl引用共通文件出错 FreeMarker template error: Error reading included file &quot;/WEB-INF/ftl/common/errormessage.ftl&quot;

初次接触spring mvc,想做一个小的练习项目,结果在ftl文件中引用其它的共通ftl文件时出错. 目录结构如图所示,想在login.ftl中引用common下的errormessage.ftl <#include '/WEB-INF/ftl/common/errormessage.ftl' /> 结果画面报错: FreeMarker template error: Error reading included file "/WEB-INF/ftl/common/errormes

植物大战僵尸 辅助 总结

第一   :   刷阳光刷金币无冷却 辅助 首先用CE工具找到基址和阳光,金币,物品栏的偏移量, 算出各个的地址, 然后通过api往内存中写入数据即可. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Wind

freemarker整理

1.FreeMarker模板的内建变量有如下几个: 1,stack:代表ValueStack本身,可通过如下方式来访问其中的变量"${stack.findString('ognl?expr')}" 2,action:代表刚刚执行过的Action实例 3,response:代表HpptServletResponse实例 4,res:代表HpptServletResponse实例 5,request:代表HpptServletRequest实例 6,req:代表HpptServletReq