版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
FreeMarker前 第一章:FreemarkerFreeMarker前 第一章:Freemarker简 1、数据模 2、模 第二章:Freemarker的使 1.创建配置实 创建数据模 获取模 合并模板与数据模 第三章:格式化,strust标签,JSTL标签,传值范 1,日期 2、数 3、struts标 4、作用 尾声:参考资料代码下载地 SEO,所以这个问题摆在了我的面前,在网上一搜,关于这方面的资料不是很多,又很杂,关于这方面的知识,越来或多的程序员将会碰到,原来项目中这部分静态化的功能主要由我来做的,struts2.0使用类似于用#tempjava使用类似于用#tempjava程序运行的过程中用实际值代替#temp#,为什么还要用FreeMarkerFreeMarkerFreeMarker第一章:Freemarker设计人员可以用它改变的外观网而无需更改或重新编译代码,因为应用将程序逻辑(Java)设计(FreeMarker)FreeMarkerWebWeb,FreeMarkerHTTPservletsWeb意,FreeMarkerStrutsJSPtaglibs1+-+-+-size= +-price=+-+-size=+-price=+-size=+-price=test="Itisa+-+-(1)=+-(2)=变量存储一个单一的价值(size,pricename)被称为。目录(root,animals)被称为哈希值。序列例如,在此数据模型的序列。2、模板HTML(或任何文本文件,FreeMarkerHTML,比如也可以是.txt)FreeMarkerhtml更有活力,那么你应该把部分特殊的HTMLFreeMarker$(...)插值jstl${}FTL@代替#。注释:HTML<#--FTL<#directivename<#listanimalsas<li>${}for${being.price}<#if<#listanimalsas<li>${}for${being.price}<#ifuser"BigJoe">//判断标签(exceptforyou)</#list>"if"<#assignages={"Joe":23,"Fred":25}+{"Joe":30,<#--自定义的标签greet<#macrogreetHello${person}!YourWebsiteis<#--使用自定义的greet<@greetperson="萤火虫"<#includeStrings:"Foo"or'Foo'or"It's\"quoted\""orr"C:\raw\string"Numbers:123.45Booleans:true,Sequences:["foo","bar",123.45],1..100Hashes:{"name":"greenmouse","price":150}Top-levelvariables:Retrievingdatafromahash:,Retrievingdatafromasequence:Specialvariable:Interpolation(orconcatenation):"Hello${user}!"(or"Free"+Gettingacharacter:Concatenation:users+Retrievingdatafromasequence:Specialvariable:Interpolation(orconcatenation):"Hello${user}!"(or"Free"+Gettingacharacter:Concatenation:users+Sequenceslice:products[10..19]orHashConcatenation:passwords+算术:(x*1.5+10)/2-y%xyxyxyxyxyxyx<y...etc.逻辑比较:!registered&&(firstVisit||fromEurope)Built-ins(内置):name?upper_case方法的调用:repeat("What",3)Defaultvalue:name!"unknown"or()!"unknown"orname!orMissingvaluetest:name??or第二章:FreemarkerConfigurationcfg=new//Specifythedatasourcewherethetemplatefilescome//HereIsetafiledirectoryforit:cfg.setDirectoryForTemplateLoading(newFile("模板路径"));//cfg.setServletContextForTemplateLoading(this.getServletContext(),"模板路径//cfg.setClassForTemplateLoading(this.class,”//Specifyhowtemplateswillseethedata-model.Thisisanadvanced//butjustusecfg.setObjectWrapper(new2创建数据模型java.langjava.utilJava使用构造函数java.lang.Numberjava.lang.BooleanBooleanjava.util.Listjava.lang.BooleanBooleanjava.util.ListJavaarraysjava.util.Mapproduct.price+-user="Big+-+-url=+-name="green//CreatetheroothashMaproot=newHashMap();//Putstring``user''intotherootroot.put("user","BigJoe");//CreatethehashforMaplatest=new//put``url''and``name''intolatest.put("url","products/greenmouse.html");latest.put("name","greenmouse");//andputitintotheroot.put("latestProduct",3获取模板getTemplate()方法。test.ftlTemplatetemp=Templatetest.ftltest.ftlTemplate存储的是模板中的解析形式,而不是文字。ConfigurationTemplate实例,因此当你再次解析test.ftlTemplate4.合并模板与数据模型Writerout=newOutputStreamWriter(System.out);cess(root,out);Writerout=newOutputStreamWriter(System.out);cess(root,out);//PrintWriterpnewPrintWriter(newFileOutputStream(newFile("1.html")));//如果为cess(root,p);//importfreemarker.template.*;importjava.util.*;importpublicclassTestpublicstaticvoidmain(String[]args)throwsException/*Youusuallydoitonlyonceinthewholeapplicationlife-cycle:Createandadjusttheconfiguration*/Configurationcfg=newConfiguration();newcfg.setObjectWrapper(new/*Youusuallydotheseformanytimesintheapplicationlife-cycle:Getorcreateatemplate*/Templatetemp=/*Createadata-model*/Maproot=newHashMap();root.put("user","BigJoe");Maplatest=newHashMap();root.put("latestProduct",latest);latest.put("url","products/greenmouse.html");latest.put("name","green/*Mergedata-modelwithtemplateWriterout=newOutputStreamWriter(System.out);cess(root,out);1,日期:string(当和一个日期值一起使用1,日期:string(当和一个日期值一起使用这个内置标签用指定的格式把日期转换成字符串,(FreeMarkerate_format,time_formatdatetime_format预定义的格式是:short,medium,longfull。定义了结果字符串的长度。例如,如果localeUS.PACIFIC,12:4512:45:0912:45:09PM12:45:09PMApr20,April20,Friday,April20,4/20/0712:45Apr20,200712:45:09April20,200712:45:09PMFriday,April20,200712:45:09PMFreeMarker${lastUpdated?string.short_long}<#--shortdate,longtime--${lastUpdated?string.medium_short}<#--mediumdate,shorttime--FreeMarker${lastUpdated?string.short_long}<#--shortdate,longtime--${lastUpdated?string.medium_short}<#--mediumdate,shorttime--4/8/039:24:44PMApr8,20039:24注意:?string.short?string.short_short,?string.medium?string.medium_medium不幸的是,由于javaDataModelFreeMarker只存储日期部分或者时间部分再或者日期和时间。这种情况下当你像${lastUpdated?string.short}或者了防止这样,你可以使用?date,?time?datetime内置标签来帮助FreeMarker。举例:${lastUpdated?datetime?string.short}.用?date,?time?datetime你可以使用?string(格式)java${lastUpdated?string("yyyy-MM-ddHH:mm:ss${lastUpdated?string("EEE,MMMd,${lastUpdated?string("EEEE,MMMMdd,yyyy,hh:mm:ssa2003-04-0821:24:44PacificDaylightTue,Apr8,Tuesday,April08,2003,09:24:44PM不像预定义格式,你不需要在指定的格式上使用?date,?time?datetime,FreeMarKer,FreeMarker,soyoucanshow"noise"ifdisplaypartsthatareactuallynotstoredinthevariable.例如mm-ddhh:mm:ssa")},openingTime1790-01-0109:24:44short,medium……"short_medium"的:someDate?string("short")someDate?string.shortdisplaypartsthatareactuallynotstoredinthevariable.例如mm-ddhh:mm:ssa")},openingTime1790-01-0109:24:44short,medium……"short_medium"的:someDate?string("short")someDate?string.shortdate:time:datetime:openingTime<#assignx=openingTime><#--noproblemcanoccurhere--${openingTime?time}<#--without?timeitwouldfail--<#--Forthesakeofbetterunderstanding,considerthis:--<#assignopeningTime=${openingTime}<#--thiswillworknow--Lastupdated:${lastUpdated}<#--assumethatlastUpdatedisadate-timevalue-->Lastupdateddate:${lastUpdated?date}Lastupdatedtime:Lastupdated:04/25/200308:00:54PMLastupdateddate:04/25/2003Lastupdatedtime:08:00:542javaLocale惯.比如300000300,000.如果我们把这个数字作为表单的一个域值放进数据库或者在中使用时,需要再转换成适合计算机输入的格式.这个标签用来输出数字(例如用${x?c}替换${x})string(当跟一个数字一起使用时3:number,currency,percent.US32"number".#settingnumberformat中使用时,需要再转换成适合计算机输入的格式.这个标签用来输出数字(例如用${x?c}替换${x})string(当跟一个数字一起使用时3:number,currency,percent.US32"number".#settingnumberfo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《基于ACSI模型的客户满意度测评体系研究》
- 衢州市卫生健康委员会招聘高校笔试真题2023
- 2023年河南省考省直单位(河南省散装水泥发展中心)笔试真题
- 2024年度公路建设保温材料供应与施工配合合同
- 2024年度财税咨询服务合同
- 2024年度毛竹山竹林碳汇项目开发与合作协议
- 二零二四年份供应链管理服务合同
- 2024年度环保型垃圾处理设施建设合同
- 2024年度广告发布合同标的、广告内容与发布渠道
- 2024年度技术开发合同标的及技术开发进度安排
- 系统工程智慧树知到期末考试答案2024年
- ad域控规划方案
- 2023水利工程设计变更报告编制导则
- 森林防火消防知识课件
- 小学心理健康教育学生情况分析
- 江苏省苏州市2023-2024学年高二年级上册期中语文试题(解析版)
- 记者的职业规划
- 厦门市2023-2024学年度第一学期高一年级质量检测数学试题参考答案与评分标准
- 社区专职网格员培训课件
- 人民调解员业务培训讲稿
- 2024年中考九年级语文专题复习现代文阅读(含答案)
评论
0/150
提交评论