zoukankan      html  css  js  c++  java
  • freemarker的template用法

    package cn.itcast.ssm.util;
    
    import com.alibaba.fastjson.JSONObject;
    import freemarker.cache.StringTemplateLoader;
    import freemarker.template.Configuration;
    import freemarker.template.Template;
    import freemarker.template.Version;
    import org.apache.commons.io.output.ByteArrayOutputStream;
    import org.apache.commons.lang.StringUtils;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.StringWriter;
    import java.util.HashMap;
    import java.util.Map;
    
    /**
     * Created by luojie on 2018/3/28.
     */
    public class TemplateUtil {
    
        private static final String BASE_PATH = "/template/";
        private static final String SUFFIX = ".ftl";
    
        private static Map<String, String> TEMPLATE_MAP = new HashMap<String, String>();
    
        public static String getTemplate(String id) throws IOException {
            String template = TEMPLATE_MAP.get(id);
            if (StringUtils.isBlank(template)) {
                StringBuffer path = new StringBuffer();
                path.append(BASE_PATH).append(id).append(SUFFIX);
                template = inputStream2String(TemplateUtil.class.getResourceAsStream(path.toString()));
                //template = StringUtils.deleteWhitespace(template);
                TEMPLATE_MAP.put(id, template);
            }
            return template;
        }
    
        /**
         * 将stream 转成字符串
         *
         * @param is
         * @return
         * @throws IOException
         */
        private static String inputStream2String(InputStream is) throws IOException {
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            int i = -1;
            while ((i = is.read()) != -1) {
                baos.write(i);
            }
            return baos.toString();
        }
    
        public static String getTemplate(String id, Object data) throws Exception {
            String source = getTemplate(id);
    
            Configuration cfg = new Configuration(new Version("2.3.23"));
            StringTemplateLoader loader = new StringTemplateLoader();
            loader.putTemplate("", source);
            cfg.setTemplateLoader(loader);
            cfg.setDefaultEncoding("UTF-8");
    
            Template template = cfg.getTemplate("");
            StringWriter writer = new StringWriter();
            template.process(JSONObject.toJSON(data), writer);
            source = writer.toString();
            return source;
        }
    
        public static void main(String[] args) {
            String r = null;
            try {
    
                JSONObject data = new JSONObject();
                data.put("loginId", "1234123");
                data.put("password", "1234123");
                data.put("location", "location");
                data.put("data", data);
    
                r = TemplateUtil.getTemplate("1001", data);
                System.out.println(r);
            } catch (Exception e) {
                //e.printStackTrace();
            }
        }
    }
    

      

    <?xml version="1.0" encoding="utf-8" ?>
    <Account messageType="1001" secretKey="123">
        <reqData>
            <loginId><#if loginId??>${loginId}</#if></loginId>
            <password><#if password??>${password}</#if></password>
            <#if location??><location>${location}</location></#if>
            <tradeSummary>test</tradeSummary>
        </reqData>
    </Account>

     xml转json

    <dependency>
          <groupId>net.sf.json-lib</groupId>
          <artifactId>json-lib</artifactId>
          <version>2.4</version>
        </dependency>
        <dependency>
          <groupId>xom</groupId>
          <artifactId>xom</artifactId>
          <version>1.2.5</version>
        </dependency>
     r = TemplateUtil.getTemplate("32000001", data);
                System.out.println(r);
    
                XMLSerializer xmlSerializer = new XMLSerializer();
                String json = xmlSerializer.read(r).toString();
                JSONObject resultData = com.alibaba.fastjson.JSON.parseObject(json).getJSONObject("reqData");
                System.out.println(resultData);
  • 相关阅读:
    LightOJ1214Large Division大数取余
    LightOJ1259Goldbach`s Conjecture素数打表+判断素数对数
    LightOJ1341Aladdin and the Flying Carpet 唯一分解定理 + 素数筛选
    素数判定
    HDU1492The number of divisors(约数) about Humble Numbers 求因子总数+唯一分解定理的变形
    HDU6375度度熊学队列双端队列deque/list
    LightOJ1234Harmonic Number调和级数+欧拉常数 / 直接打表
    UVA699The Falling Leaves二叉树+递归
    51nod1130N的阶乘的长度V2(斯特林近似)套斯特林公式
    LightOJ1138Trailing Zeroes (III)二分+求N!末尾0
  • 原文地址:https://www.cnblogs.com/james-roger/p/8662937.html
Copyright © 2011-2022 走看看