zoukankan      html  css  js  c++  java
  • Maven 整合FreeMarker使用

    pom.xml

    1 <!-- freemarker jar -->
    2 <dependency>
    3     <groupId>org.freemarker</groupId>
    4     <artifactId>freemarker</artifactId>
    5     <version>2.3.20</version>
    6 </dependency>

     testFreeMarker.flt

     1 您好${name},现在在测试FreeMarker功能 

    FreeMarkerUtil.java

     1 package pers.kangxu.test.util;
     2 
     3 import java.io.IOException;
     4 import java.io.StringWriter;
     5 import java.util.Map;
     6 
     7 import javax.servlet.http.HttpServletRequest;
     8 
     9 import freemarker.template.Configuration;
    10 import freemarker.template.Template;
    11 import freemarker.template.TemplateException;
    12 
    13 /**
    14  * 
    15  * <b>
    16  *    FreeMarkerUtil
    17  * </b>
    18  * @author kangxu
    19  *
    20  */
    21 public class FreeMarkerUtil {
    22     
    23     private static FreeMarkerUtil instance;
    24     private Configuration config;
    25     
    26     String templatePath = "/freeMarker/";
    27     
    28     /**
    29      * instance FreeMarkerUtil
    30      * @return
    31      */
    32     public static FreeMarkerUtil instance() {
    33         if (instance == null) {
    34             instance = new FreeMarkerUtil();
    35         }
    36         return instance;
    37     }
    38     
    39     /**
    40      * instance Configuration
    41      * @param request
    42      */
    43     private void configInstance(HttpServletRequest request) {
    44         if (this.config == null) {
    45             this.config = new Configuration();
    46             this.config.setServletContextForTemplateLoading(request.getSession().getServletContext(),templatePath);
    47         }
    48     }
    49     
    50     /**
    51      * 通过模板文件生成字符串
    52      * @param request
    53      * @param templateFileName
    54      * @param propMap
    55      * @return
    56      */
    57     public String geneFileStr(HttpServletRequest request,String templateFileName, Map<String, Object> propMap) {
    58         configInstance(request);
    59         StringWriter out = new StringWriter();
    60         Template tmp;
    61         try {
    62             tmp = this.config.getTemplate(templateFileName,"UTF-8");
    63             tmp.setEncoding("UTF-8");
    64             tmp.process(propMap, out);
    65         } catch (IOException e) {
    66             e.printStackTrace();
    67         } catch (TemplateException e) {
    68             e.printStackTrace();
    69         }
    70         return out.getBuffer().toString();
    71     }
    72 
    73 }

    TestController.java

     1 package pers.kangxu.test.controller;
     2 
     3 import java.util.HashMap;
     4 import java.util.Map;
     5 
     6 import javax.servlet.http.HttpServletRequest;
     7 
     8 import org.springframework.stereotype.Controller;
     9 import org.springframework.web.bind.annotation.RequestMapping;
    10 import org.springframework.web.bind.annotation.ResponseBody;
    11 
    12 import pers.kangxu.test.util.FreeMarkerUtil;
    13 
    14 
    15 @Controller
    16 @RequestMapping("/test-default")
    17 public class TestController {
    18     
    19     @RequestMapping(value="test-freemarker",produces = "application/json; charset=utf-8")
    20     @ResponseBody
    21     public String testFreeMarker(HttpServletRequest request){
    22         
    23         Map<String,Object> map = new HashMap<String,Object>();
    24         map.put("name", "【我是名字】");
    25         
    26         return FreeMarkerUtil.instance().geneFileStr(request, "testFreeMarker.flt", map);
    27     }
    28 }

    运行结果

    学习无止尽,代码我疯狂
  • 相关阅读:
    2018年左其盛读过评过的书(持续更新中)
    2星|《用场景营销引爆你的生意》:总共4个推荐案例,3个已经失败
    2018左其盛经管新书差评榜(持续更新中)
    3星|《十大全球CEO亲授企业高速成长的关键战略》:作为CEO,我也非常坦率地表明过家庭优先于工作
    2018左其盛好书榜(持续更新中)
    3星|《你的品牌需要一个讲故事的人》:有理论没案例
    《思考快与慢》前传,两位天才犹太心理学家的传奇人生与学术故事:4星|《思维的发现》
    C#如何在派生类中不显示父类的一些属性以及TypeDescriptor使用
    在XML里的XSD和DTD以及standalone的使用
    数据库操作之简单带参操作
  • 原文地址:https://www.cnblogs.com/kangxu/p/6248804.html
Copyright © 2011-2022 走看看