获取freemarker处理后的内容

  相信很多人都用过freemarker,或做视图,或模板,或生成静态文件等,但是有多少人做过这样的应用,通过模板后,不是要输出静态的内容,而是直接在代码中获取处理模板后的内容,研究了下API,freemarker里提供StringWriter,StringWriter不需要指定文件,所以看名字也能知道,他能直接获取处理后的内容,代码如下 




Java代码  收藏代码
  1. import java.io.IOException;  
  2. import java.io.StringWriter;  
  3. import java.util.ArrayList;  
  4. import java.util.HashMap;  
  5. import java.util.List;  
  6. import java.util.Map;  
  7.   
  8. import freemarker.template.Configuration;  
  9. import freemarker.template.Template;  
  10. import freemarker.template.TemplateException;  
  11.   
  12. public class TestFreemarker  
  13. {  
  14.       
  15.     @SuppressWarnings("unchecked")  
  16.     public static void main(String[] args) throws IOException  
  17.     {  
  18.         Configuration cfg = new Configuration(); 
  19. cfg.setDirectoryForTemplateLoading(new File("E:\\kuaipan\\workspace2016\\freemarker001\\src\\hello")); 
  20.         List<String> strList=new ArrayList<String>();  
  21.         for (int i = 0; i < 2000; i++)  
  22.         {  
  23.             strList.add("第  "+i+" 个");  
  24.         }  
  25.           
  26.         Map root = new HashMap();  
  27.         root.put("message""您好!");  
  28.         root.put("username""diqiu");  
  29.         root.put("strList", strList);  
  30.         Template t = cfg.getTemplate("test.txt");  
  31.           
  32.         //最关键在这里,不使用与文件相关的Writer  
  33.         StringWriter stringWriter=new StringWriter();  
  34.           
  35.         try  
  36.         {  
  37.             t.process(root, stringWriter);  
  38.               
  39.             //这里打印的就是通过模板处理后得到的字符串内容  
  40.             System.out.println("stringWriter: "+stringWriter.toString());  
  41.         } catch (TemplateException e)  
  42.         {  
  43.             e.printStackTrace();  
  44.         }  
  45.   
  46.     }  
  47.   
  48. }  



test.txt模板里的内容如下: 

Java代码  收藏代码
  1. ${message}  
  2. ${username}  
  3.   
  4. ${strList?size}  
  5.   
  6. <#list strList as str>  
  7.     str:${str}; 哈哈  
  8. </#list>  



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/539382.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c4.5算法python实现_算法:用Python实现—最优化算法

今天给大家分享一下算法&#xff0c;用python来实现最优化算法。废话不多说&#xff0c;直接上代码&#xff1a;一、二分法函数详见rres&#xff0c;此代码使该算法运行了两次def asdf(x): rres8*x**3-2*x**2-7*x3 return rresi2left0right1while i>0 : i i-1 …

comsol临时文件夹中有不支持的字符_文件名中不能包含的字符

文件名是为了方便人们区分计算机中的不同文件&#xff0c;而给每个文件设定一个指定的名称。由文件主名和扩展名组成。DOS操作系统规定文件名由文件主名和扩展名组成&#xff0c;文件主名由1~8个字符组成&#xff0c;扩展名由1~3个字符组成&#xff0c;主名和扩展名之间由一个小…

linux 星号 通配符,如何在bash中转义通配符/星号字符?

简短的回答像其他人所说的那样 - 你应该总是引用变量来防止奇怪的行为。所以使用echo“$ foo”代替echo $ foo。长期回答我确实认为这个例子值得进一步解释&#xff0c;因为它的表面看起来比它看起来更多。我可以看到你的困惑在哪里&#xff0c;因为在你运行你的第一个例子后&a…

PYTHON面试

大部分的面试问题&#xff0c;有最近要找事的老铁吗&#xff1f;python语法以及其他基础部分可变与不可变类型&#xff1b; 浅拷贝与深拷贝的实现方式、区别&#xff1b;deepcopy如果你来设计&#xff0c;如何实现&#xff1b; __new__() 与 __init__()的区别&#xff1b; 你知…

vs怎么更改编译的堆空间_再见吧 buildSrc, 拥抱 Composing builds 提升 Android 编译速度...

前言长期以来困扰我们的一个问题就是构建速度&#xff0c;AndroidStudio 的构建速度严重影响 Android 开发者的工作效率&#xff0c;尤其是更新一个版本号&#xff0c;导致整个项目重新构建&#xff0c;在网络慢的情况下&#xff0c;这是无法忍受的。buildSrc 这种方式&#xf…

java map的遍历

转载地址&#xff1a;http://www.cnblogs.com/shenliang123/archive/2012/08/28/2660705.html -------------------------------------------------------------------------------------------------------------------- java中的遍历 import java.util.Collection; import j…

python循环for...in_python循环while和forin实例

python 循环while和for in简单实例#!/uer/bin/env python# _*_ coding: utf-8 _*_lucknumber 5b 0while b <3:print(guss count:,b)a int(input(you guse number))if a > lucknumber:print (youaerbiger)elif a lucknumber:print (youare righet)break #跳出这个层级…

android悬浮功能实现,Android实现系统级悬浮按钮

本文实例为大家分享了Android系统级悬浮按钮的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下具体的需求1、就是做一个系统级的悬浮按钮&#xff0c;就像iPhone 桌面的那个悬浮按钮效果一样&#xff0c;能随意拖动&#xff0c;并且手一放开&#xff0c;悬浮按钮就自动…

oracle decode_错过血亏!一文搞懂Oracle锁相关视图及相关操作

本文主要研究锁的相关视图&#xff0c;以及锁的相关操作&#xff0c;通过视图查锁的问题。 一、v$transaction视图第一个视图是v$transaction&#xff0c;就是Oracle数据库所有活动的事务数&#xff0c;所有活动的事务每一个活动的事务在这里有一行。v$transactionXIDUSN表示当…

Linux文件系统与命令行

什么是命令行? 接收键盘命令并将其传给操作系统执行的程序(用于输入和管理命令的程序),统称命令行,也叫: Shell&#xff0c;几乎所有Linux发行版都提供了一个 Shell 程序,叫做: Bash (Bourne-Again Shell, 因为最初的 Shell 是由 Steve Bourne 编写的原始 Unix 程序, Again 表…

freeMarker 遍历 list,map,listmap

List List<String> clientSourceDatanew ArrayList<String>();clientSourceData.add("field字段");clientSourceData.add("title标题");ftl&#xff1a; <#if clientSourceData?exists><#list clientSourceData as key> <tr&g…

qtableview不选中_如何选中/取消选中QTableView并触发setData()

我有一个自定义的QTableModel&#xff0c;我在PyQt中使用QTableView显示它。我有一些字段设置为可检查&#xff0c;我想添加“全部检查”和“不检查”按钮。我觉得应该有一种方法可以使setData()从代码中被调用&#xff0c;这样检查状态就会改变&#xff0c;就像我已经用setDat…

android 自定义菜单栏,GitHub - earthWo/AndroidBottomNavigation: android 底部菜单栏,自定义样式,自定义菜单数量,添加滚动动画和水波纹动画...

AndroidBottomNavigation截图使用方法gradle:compile com.whitelife.library:library:1.0.1maven:com.whitelife.librarylibrary1.0pomandroid:id"id/bottom_navigation"android:layout_width"match_parent"android:layout_height"56dp"android:…

windows怎么打开python_windows怎么打开Python

Windows中运行Python的两种运行方式认识编程环境 1 直接命令行启用Python。当然&#xff0c;如果直接在cmd中输入python&#xff0c;需要在windows中的path环境变量中做好设置。 此时&#xff0c;cmd中运行python就可以出现 “>>>” 符号。意味着python进入了交互运行…

sqldeveloper创建账号_用oralce 自带工具sql developer 创建表空间,用户,权限

用oralce 自带工具sql developer 创建/*第1步&#xff1a;创建临时表空间 */create temporary tablespace hudongtemptablespacetempfile E:\worksubject\WY-Honda_Ess\Oracle11g\hudongtemptablespace.dbfsize 50mautoextend onnext 50m maxsize 20480mextent management loc…

AOE网与关键路径简介

前面我们说过的拓扑排序主要是为解决一个工程能否顺序进行的问题&#xff0c;但有时我们还需要解决工程完成需要的最短时间问题。如果我们要对一个流程图获得最短时间&#xff0c;就必须要分析它们的拓扑关系&#xff0c;并且找到当中最关键的流程&#xff0c;这个流程的时间就…

Java 集合体系详解——List体系有序集合

引言 面向对象语言对事物的体现必然是以对象的形式&#xff0c;Java工程师为了方便多多个对象的操作&#xff0c;就对对象进行存储&#xff0c;集合就是存储对象的一种方式&#xff0c;他们的底层都是基于不同的数据结构。当然集合和数组一样都是容器&#xff0c;数组也是可以存…

android 定义固定数组,Android 图片数组定义和读取

位置&#xff1a;packages/apps/Launcher21、图片数组定义、资源读取如果有多张图片&#xff0c;这些图片的使用与顺序无关&#xff0c;可以采取这种方式。drawable-nodpi中有3张图片&#xff0c;wallpaper_1.jpg、wallpaper_2.jpg、wallpaper_3.jpgXML中定义数组IDwallpaper_1…

alert闪一下就没了_尾部贯穿式镀铬银饰条除了丑,还能闪瞎眼

尾部贯穿式镀铬银饰条&#xff0c;在2010年代成为诸多汽车品牌车型争相采用的新世纪新标配&#xff0c;配以双边排气&#xff0c;让整个车尾看起来层次感强烈&#xff0c;视觉收窄&#xff0c;几十万的奥迪A8L有&#xff0c;十几万的斯柯达速派有&#xff0c;A级车有&#xff0…

docker 指定网卡_Docker | Docker技术基础梳理(五) Docker网络管理

为什么需要容器的网络管理&#xff1f;容器的网络默认与宿主机、与其他容器相互隔离&#xff0c;且容器中可以运行一些网络应用&#xff0c;比如nginx、web应用、数据库等&#xff0c;如果需要让外部也可以访问这些容器中运行的网络应用&#xff0c;那么就需要配置网络来实现。…