freemarker入门教程atcrowdfunding课件框架_第1页
freemarker入门教程atcrowdfunding课件框架_第2页
freemarker入门教程atcrowdfunding课件框架_第3页
freemarker入门教程atcrowdfunding课件框架_第4页
freemarker入门教程atcrowdfunding课件框架_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论