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 }

    运行结果

    学习无止尽,代码我疯狂
  • 相关阅读:
    ASP.NET -- repeater控件的使用
    在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: 命名管道提供程序, error: 40
    错误提示:在此上下文中不允许使用名称 "***"。有效表达式包括常量、 常量表达式和变量(在某些上下文中),不允许使用列名。
    mongodb 性能提高之利用索引, 待续
    工程化 经历的 4 个阶段
    把连续的字符 变成 一个
    sort 排序详解
    理解正则 的 ?! ?:
    [ 订单查询 ] 性能 高并发 : 分表 与 用户id%1024 存放表
    搭建LNMP基础框架
  • 原文地址:https://www.cnblogs.com/kangxu/p/6248804.html
Copyright © 2011-2022 走看看