freemarker使用(freemarker如何使用)

2025-02-18 09:50:03 0

freemarker使用(freemarker如何使用)

本文目录

freemarker如何使用

1.在lib中加入freemarker的包2.在文件templates创建一个文件 test.ftl内容为: ${name},你好,${msg}3.创建类4个步骤,具体看类中的使用package abin;import java.io.File;import java.io.OutputStreamWriter;import java.util.HashMap;import java.util.Map;import freemarker.template.Configuration;import freemarker.template.Template;/** * 模板文件(hello,${name})+数据模型(name=“******“)----------经过FreeMarker整合----输出(hello,******) * 经过4个步骤,见下面 * @author chenhaibin * */public class HelloFreeMarker{ private Configuration conf; //1 创建Configuration实例,该实例负责管理FreeMarker的模板加载路径 public void first() throws Exception { conf=new Configuration(); //放置test.fsl文件的路径 conf.setDirectoryForTemplateLoading(new File(“templates“)); } private Template t; //2 使用Configuration实例生成Template实例,同时加载指定的模板文件 public void second() throws Exception { t=conf.getTemplate(“test.ftl“); } private Map datamap; //3 填充数据模型 public void third() { datamap=new HashMap(); datamap.put(“name“, “chenhaibin“); datamap.put(“msg“, “欢迎使用FreeMarker!“); } //4 合并处理 public void four() throws Exception { t.process(datamap, new OutputStreamWriter(System.out)); } public static void main(String args) throws Exception { HelloFreeMarker hfm=new HelloFreeMarker(); hfm.first(); hfm.second(); hfm.third(); hfm.four(); }}4.结果是: chenhaibin,你好,欢迎使用FreeMarker!

如何快速学习freemarker以及使用经验

首先,通过xml模板可以将基本上所有的格式都事先锁定,包括页码和分页,只要你事先预设好就能够通过freemarker实现生成,接下来就是我这个问题了,目录怎么解决,下面是解决思路:1:目录的内容可以根据之前其他的内容一样解决,通过XML模板预先设置好,2:目录的页码已经研究过是不能直接通过xml模板实现动态对应了(至少我没搞定0.0)3:由于不能够一步到位,我采取了在模板中预留了一页空白页,只留了抬头的目录两个字,然后通过查询目录二字进行目录的生成,这个功能也是我刚刚折腾出来的0.0目前还没测试能不能用模板生成目录后再更新目录0.0,不过想想可以直接生成目录应该就不用这么麻烦了,至于word生成后的修改0.0我觉得还是以后再说吧..整体来说应该还算完美解决了,代码我就不在这贴出来了~虽然中间折腾了半天走了半天弯路~讲道理还是用的jacob来实现的。。

如何使用freemarker将jsp网页静态化

整个网站首页的基本结构是通过jsp的include标签将所有通过freemarker生成的静态页面组织起来。后台控制各个部分的静态页生成。这样做将首页进行了拆分,便于了静态页面的维护,当我们需要生成“友情链接”部分的时候就只生成友情链接部分,而不需要将整个页面都从新生成一次。以下是我生成静态页最核心的方法,使用freemarker。 /*** 生成静态页面主方法* @param context ServletContext* @param data 一个Map的数据结果集* @param templatePath ftl模版路径* @param targetHtmlPath 生成静态页面的路径*/ public static void crateHTML(ServletContext context,Map《String,Object》 data,String templatePath,String targetHtmlPath){Configuration freemarkerCfg = new Configuration();//加载模版freemarkerCfg.setServletContextForTemplateLoading(context, “/“);freemarkerCfg.setEncoding(Locale.getDefault(), “UTF-8“);try {//指定模版路径Template template = freemarkerCfg.getTemplate(templatePath,“UTF-8“);template.setEncoding(“UTF-8“);//静态页面路径String htmlPath = context.getRealPath(“/html“)+“/“+targetHtmlPath;File htmlFile = new File(htmlPath);Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(htmlFile), “UTF-8“));//处理模版template.process(data, out);out.flush();out.close();} catch (Exception e) {e.printStackTrace();}} 其实很简单,只要Google一下就有很多这方面的代码。我也是Google的代码然后自己再根据实际情况修改。简单说明一下参数: ServletContext :这个不用说了吧。做java web的应该都知道,只不过struts2中这样获取ServletActionContext.getServletContext()Map《String,Object》 data : 模版的数据来源。freemarker通过一个Map给ftl模版送数据。现在已友情链接为列子详细介绍静态页面如何生成。其他模块以此类推。 String templatePath : ftl所在的路径。我这里相对于网站的一个相对路径然后通过ServerContext获取绝对路径。 String targetHtmlPath : 最后生成静态页的路径:我这里相对于网站的一个相对路径然后通过ServerContext获取绝对路径。 友情链接根据这段代码《jsp:include page=“/html/index_link.html“ flush=“true“》《/jsp:include》我们需要freemarker生成一个index_link.html文件。友情链接数据来源通过数据库查询获取。然后再写一个方法专门生成友情链接静态页面: /*** 生成友情链接的静态页index_link.html* @param context* @param data*/public static void createIndexFriendLink(ServletContext context,Map《String,Object》 data){crateHTML(context,data,“index_link.ftl“,“index_link.html“);} 此方法调用上面的createHTML方法。然后根据以上方法我们就可以再Struts2的action里面从数据库查询数据放入map调用createIndexFriendLink()方法生成静态页了。这是action中的一个方法:/*** 生成友情链接静态页index_link.html* @return*/public String createLink(){//权限验证if(! this.isAccess())return “error“;try{//得到友情链接List links = friendLinkDAO.findAll();//准备数据HashMap《String,Object》 data = new HashMap《String,Object》();data.put(“links“, links);//调用静态页面方法HTML.createIndexFriendLink(ServletActionContext.getServletContext(), data);addActionMessage(“静态页面生成成功!“);return “message“;}catch(Exception e){e.printStackTrace();return “failure“;}} List links = friendLinkDAO.findAll();通过spring注入action的hiberate DAO获取数据给list然后通过以下代码 HashMap《String,Object》 data = new HashMap《String,Object》();data.put(“links“, links); 准备数据调用createIndexFriendLink()方法。以下是:ftl模版源码: 《#if links?size != 0》 《 div class=“link“》《strong》友情链接:《/strong》《#list links as link》《a href=“${link.linkUrl}“ target=“_blank“ title=“${link.linkName}“》${link.linkName}《/a》《/#list》 《 /div》 《 #else》 《 div class=“link“》《/div》 《 /#if》

freemarker使用(freemarker如何使用)

本文编辑:admin

更多文章:


二维傅里叶变换(二维傅里叶变换的可分离性有什么实际意义)

二维傅里叶变换(二维傅里叶变换的可分离性有什么实际意义)

本文目录二维傅里叶变换的可分离性有什么实际意义二维傅里叶变换的物理意义如题,变换后的图像怎么看对于二维图片的傅里叶变换,因为没有采样频率,只知道图片的大小,那怎么确定频谱的实际频率分辨率二维傅里叶变换的可分离性有什么实际意义傅里叶变换的实质

2025年4月1日 10:50

airhostess怎么读音发音英语(女服务员的英语是)

airhostess怎么读音发音英语(女服务员的英语是)

本文目录女服务员的英语是空姐英文怎么说女服务员的英语是女服务员的英语是:waitress。waitress 英She had been working in a pub, cooking and waitressing.她之前在酒吧工

2025年3月27日 05:20

vba教程免费下载(求VBA视频教程下载)

vba教程免费下载(求VBA视频教程下载)

本文目录求VBA视频教程下载谁能给我一个下载EXCEL VBA的基础教程的网站呀!求VBA视频教程下载vba的教程很多为什么要用视频呢?如果要学习好vba的话请先熟悉vb的程序设计方法和vba的界面使用视频学习太花费时间而且内容也比较少(个

2025年3月26日 18:00

栈和队列的存储方式(栈和队列的存储方式)

栈和队列的存储方式(栈和队列的存储方式)

本文目录栈和队列的存储方式程序中的栈和队列是什么意思简述栈和队列的顺序存储结构和链式存储结构的优缺点栈与队列的区别堆栈和队列 的本质区别线性表、栈、队列有何异同栈和队列的存储方式栈和队列都是在一个特定范围的存储单元中存储的数据,这些数据都可

2025年3月24日 00:30

studying的翻译(study 和studying都有名词词性 有什么区别)

studying的翻译(study 和studying都有名词词性 有什么区别)

本文目录study 和studying都有名词词性 有什么区别study for tests 翻译bobby,bear,is,studying什么读“学习使我快乐”用英文怎么翻译study 和studying都有名词词性 有什么区别stud

2025年4月3日 03:40

flat tire(flat tire是什么意思)

flat tire(flat tire是什么意思)

本文目录flat tire是什么意思tire flat是什么意思篮球扁了 / 车子没气了 翻译flat tire是什么意思flat tire 漏了气的车胎说明:flat adj. 瘪了的;撒了气的tire=tyre n.轮胎a fron

2025年2月11日 01:00

二建报名时间2020官网(什么时候能报考二建)

二建报名时间2020官网(什么时候能报考二建)

本文目录什么时候能报考二建2020全国二建考试时间是什么时候一年考几次什么时候能报考二建函授大专毕业,只有毕业证下来就可以报考二建。二级建造师报考条件是中专及以上学历工程类或工程经济类专业从事相关专业2年以上。一般从事年限就是按照毕业时间开

2025年3月26日 18:30

吉利gnetlink(g-link吉利手机交互系统怎么用)

吉利gnetlink(g-link吉利手机交互系统怎么用)

本文目录g-link吉利手机交互系统怎么用吉利gnetlink苹果版本下载之后,默认车辆,显示网络错误怎么回事吉利gnetlink领克能用吗g-link吉利手机交互系统怎么用具体方法如下:1、首先打开USB调试模式,开发者选项打开,里面us

2025年3月23日 16:10

phpstorm下载教程(如何安装PHP)

phpstorm下载教程(如何安装PHP)

本文目录如何安装PHPPhpStorm 1002怎么激活,破解如何安装PHP为了开始使用 PHP,您可以:找一个支持 PHP 和 MySQL 的 Web 主机在您自己的 PC 机上安装 Web 服务器,然后安装 PHP 和 MySQL使用支

2025年3月24日 10:20

常量中有换行符(常量中有换行符)

常量中有换行符(常量中有换行符)

本文目录常量中有换行符“/”应用程序中的服务器错误 编译器错误消息: CS1010: 常量中有换行符c#中提示错误“常量中有换行符”和“字符文本中的字符太多”Qt出现常量有换行符怎么办常量中有换行符 是怎么回事C# 提示错误 “常量中有换行

2025年2月25日 02:30

穿梭时空的侠客txt下载(如果你能穿越到古代,你想成为什么样的人)

穿梭时空的侠客txt下载(如果你能穿越到古代,你想成为什么样的人)

本文目录如果你能穿越到古代,你想成为什么样的人如果这世界上有时光机,你想要穿越到哪年,或者是回到哪年为什么如果你能穿越到古代,你想成为什么样的人谢邀!如果能穿越到古代,我想带着土豆和红薯的种粮、以及现代科技穿越成宋徽宗。宋徽宗时期,大宋已经

2025年3月20日 07:10

humorous名词(humorous什么时候加s)

humorous名词(humorous什么时候加s)

本文目录humorous什么时候加scomic 和humorous.的区别humorous名词humorous什么时候加s你好,我觉得这个问题问的就有点问题。humorous据我所知是一个形容词,形容词好像并没有加s的变化,只有名词加s变复

2025年4月1日 14:00

int编程中是什么意思?Intelligent和smart的区别,智能硬件应该怎能翻译

int编程中是什么意思?Intelligent和smart的区别,智能硬件应该怎能翻译

本文目录int编程中是什么意思Intelligent和smart的区别,智能硬件应该怎能翻译int编程中是什么意思在C/C++编程语言中,int表示整型变量,是一种数据类型,用于定义一个整型变量,在不同编译环境有不同的大小,不同编译运行环境

2025年4月1日 08:10

much的比较级和最高级(much比较级)

much的比较级和最高级(much比较级)

本文目录much比较级much的比较级和最高级关于few,little,much,many请问它们分别的比较级和最高级是什么为什么much 的比较级最高级是more mostmany/much比较级和最高级怎么写many和much的比较级是

2025年3月1日 18:00

dell售后电话(戴尔电脑24小时售后电话!!!急!!!)

dell售后电话(戴尔电脑24小时售后电话!!!急!!!)

本文目录戴尔电脑24小时售后电话!!!急!!!戴尔笔记本电脑售后服务电话是多少戴尔售后电话是多少戴尔电脑的售后电话是多少戴尔售后服务电话戴尔电脑24小时售后电话!!!急!!!回答不是售后电话吗那么是什么问题,你说一下【售后热线】有关产品售后

2025年3月7日 14:50

js混淆加密(js在网页刷新的时候改变是怎么弄的)

js混淆加密(js在网页刷新的时候改变是怎么弄的)

本文目录js在网页刷新的时候改变是怎么弄的前端JS都是用什么加密的js在网页刷新的时候改变是怎么弄的方式一:window.location.href=当前页;方式二:window.location.reload();方式三还可以用ajax方

2025年2月28日 11:00

false是1还是0(php 里面,0、1和false 、true有什么区别)

false是1还是0(php 里面,0、1和false 、true有什么区别)

本文目录php 里面,0、1和false 、true有什么区别在js中,为什么!0是true,!!0是false,!1是false,!!1是true,!-1是false,!!-1是truejava中1和0哪个对应true为什么php 里面,

2025年3月8日 02:40

delphi 2010(Delphi 2010 如何设置Exe输出路径)

delphi 2010(Delphi 2010 如何设置Exe输出路径)

本文目录Delphi 2010 如何设置Exe输出路径delphi10和delphi2010区别delphi2010 怎么设置编译出来的exe文件的位置delphi2010中都用什么报表控件delphi 2010 如何安装组件Delphi2

2025年4月2日 23:50

vba编程软件(Excel里的VBA是什么,有什么用途)

vba编程软件(Excel里的VBA是什么,有什么用途)

本文目录Excel里的VBA是什么,有什么用途vba是什么vba 编程EXCEL中自带的VBA和VB有什么区别vba程序是什么vba全称是什么Excel里的VBA是什么,有什么用途Excel里的VBA是Visual Basic的一种宏语言。

2025年2月9日 05:40

bloodc(blood-c剧场版的结局什么意思)

bloodc(blood-c剧场版的结局什么意思)

本文目录blood-c剧场版的结局什么意思bloodc和四月一日有什么关系blood-c剧场版的结局什么意思blood-c剧场版的结局解释了为什么文人究竟为什么要做「实验」。文人爱上小夜,但是古物的种族在不断消失,过去人类和古物定下的约定古

2025年2月22日 04:40

近期文章

本站热文

harbor,port,pier的区别?谁能解释“harbour“(港口)与“pier“(码头)的区别
2025-02-22 17:40:03 浏览:16
ibatis foreach(ibatis 批量update操作)
2025-02-10 23:40:06 浏览:7
endless rain(endless rain表达什么情感)
2025-02-14 06:00:02 浏览:6
标签列表

热门搜索