freemarker配置步骤.docx
- 文档编号:20006083
- 上传时间:2023-04-24
- 格式:DOCX
- 页数:11
- 大小:25.41KB
freemarker配置步骤.docx
《freemarker配置步骤.docx》由会员分享,可在线阅读,更多相关《freemarker配置步骤.docx(11页珍藏版)》请在冰豆网上搜索。
freemarker配置步骤
配置
--下面的配置freemarke的ftl文件的位置--> --是否和服务器(tommcat)一起启动。 0为不。 1为是-->
--显示标签的样式,没有则不显示,以文本的形式显示-->
1下载freemarker
我用的是配置进程
2配置BuildPath。
解紧缩有,把lib里面的jar加入Eclipse的BuildPath里面
3创建测试程序
packagefreemarker;
import
publicclassTest1{
privateConfigurationcfg;
publicConfigurationgetCfg(){
returncfg;
}
publicvoidinit()throwsException{
cfg=newConfiguration();
(newFile("bin/freemaker"));
}
publicstaticvoidmain(String[]args)throwsException{
Test1obj=newTest1();
();
Maproot=newHashMap();
Templatet=().getTemplate("");
Writerout=newOutputStreamWriter(newFileOutputStream(""),"GBK");
(root,out);
"Successfull................");
}
}
4利用到的模板
<#macrogreetperson,website>
Hello${person}!
YourWebsiteis${website}.
#macro>
<@greetperson="老紫竹"website=""/>
5运行结果
Hello老紫竹!
YourWebsiteis
FreeMarker是一个Java模版语言,它是的绝佳替代方案。
FreeMarker许诺Javaservlet维持图形设计同应用程序逻辑的分离,这是通过在模板中密封HTML完成的。
模板用servlet提供的数据动态地生成HTML。
模板语言是壮大的直观的,编译器速度快,输出接近静态HTML页面的速度。
固然除FreeMarker外,Velocity也是一个很优秀的模板引擎,本章要紧介绍FreeMarker的功能,读者若是有爱好的话也能够通过学习FreeMarker后,再去学习Velocity,如此通过两个模板引擎的比较会加倍深切地明白得二者的不同,更能学好技术。
固然二者有很多相似的地址。
u^:
wKvj~z0
5c#P\m;W
h0
FreeMarker功能概述
FreeMarker概述海岸线网络聚合6yJ_H$}3]
● FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,利用纯Java编写海岸线网络聚合~(T#Gy4|Eb
● FreeMarker被设计用来生成HTMLWeb页面,专门是基于MVC模式的应用程序
nJ@P*B0`v(?
1P0
● 尽管FreeMarker具有一些编程的能力,但通常由Java程序预备要显示的数据,由FreeMarker生成页面,通过模板显示预备的数据海岸线网络聚合gF~;OA(X;}
● FreeMarker不是一个Web应用框架,而适合作为Web应用框架一个组件海岸线网络聚合Wa:
qU/}0qO!
e
rUf
海岸线网络聚合/X+u4G$_}lsn
Y9vEr
● FreeMarker与容器无关,因为它并非明白HTTP或Servlet;FreeMarker一样能够应用于非Web应用程序环境
1cj%IgN'[.s;@3h^0
● FreeMarker更适合作为Model2框架(如Struts)的视图组件,你也能够在模板中利用JSP标记库海岸线网络聚合+_1db&z)_3~&F
● FreeMarker是免费的
\
IFW3|K2d0
5ivHgdwlApe0
FreeMarker框架剖析
FreeMarker的目标是生成各类文本,而且他是轻量级的,而且还不能算是一个严格意义上的框架只是一个引擎或说是一个工具。
x-I8d)AQ$|Nee0
FreeMarker的特点:
海岸线网络聚合/SYW1c)md6~7z
● 壮大的模版语言功能:
支持循环、选择结构,支持宏概念。
海岸线网络聚合;O,_4v4wl,r&p_
● 通用的数据模型:
Java对象通过插件式对象封装,以变量方式在模板中显示
-IG0p7aj0
● Web开发中JSP的优秀替代者:
替代JSP,减少重复开发海岸线网络聚合;bxAZENx(dV;j
● 支持国际化:
智能国际化,字符利用UNICODE海岸线网络聚合r
● 处置XML的能力:
在新版本中支持递归遍历XML树海岸线网络聚合]Q1_;q$b
海岸线网络聚合%i#}0mH4~FCs
数据模型(DataModel)
在FreeMarker模版中含有三种大体对象类型:
scalars、hashes和sequences。
除此之外还有方式、宏和变换器、节点。
咱们一个个来介绍。
海岸线网络聚合@8r;rE~;ct8jx
scalar:
变量存储单值,包括:
Gd2}4wRJxQ0
● 字符串:
简单文本,在模板中利用引号(单引号或双引号)括起
w*pMiU)v7@\T0
● 数字:
在模板中直接利用数字值海岸线网络聚合/RAw"}(O`)d3{d~
● 日期:
存储日期/时刻相关的数据,能够是日期、时刻或日期-时刻(Timestamp);通常情形,日期值由程序员加到数据模型中,设计者只需要显示它们
6Ckkc,U7]sV+e0
● 布尔值:
true或false,通常在<#if…>标记中利用海岸线网络聚合g^'E
I"l?
N:
7K\"suiFT{Fu`0
hashes:
充当其它对象的容器,每一个都关联一个唯一的查询名字。
它具有一个唯一的查询名字和它包括的每一个变量相关联海岸线网络聚合Ns6}Zymef!
x
sequences:
充当其它对象的容器,顺顺序访问。
利用数字和它包括的每一个变量相关联,索引值从0开始
I6VBT(o*Jo1t0
方式:
通过传递的参数进行计算,以新对象返回结果海岸线网络聚合'_5~tQ}6xKZB
宏和变换器:
用户自概念指令(自概念FTL标记)。
2`N\pN0
节点:
为树型结构中的一个节点,通常在XML处置中利用。
}#W$lGKz%O0
V/P[~[2a0
海岸线网络聚合LHjf
A([
模板(Template)
FreeMarker的模板利用模板语言FTL(FreeMarkerTemplateLanguage)进行编程。
模版包括:
文本、Interpolation、FTL标记和注释四部份组成。
海岸线网络聚合2v7EyO'hGe+b
q
文本:
直接输出海岸线网络聚合L4E8ysq1F;NgCu/F&H
Interpolation:
由${和},或#{和}来限定,计算值替代输出
Th~gqBw0
FTL标记:
FreeMarker指令,和HTML标记类似,名字前加#予以区分,可不能输出
gpS|%ues*f]uF0
注释:
由<#--和-->限定,可不能输出
d&Dsxm|IL0
海岸线网络聚合1R$hk7uos%e8G#PL
FTL区分大小写,因此list是正确的FTL指令,而List不是;${name}和${NAME}是不同的。
Interpolation只能在文本中利用。
FTL标记不能位于另一个FTL标记内部。
~,S^$]@l
[Dz0
海岸线网络聚合HV{OD0N
Gg[
?
9l
在FreeMarker模板中,利用FTL标记引用指令
N
s+q&@_%GTu0
● 有三种FTL标记,这和HTML标记是类似的:
海岸线网络聚合`)a\a_6|0iL;o
开始标记:
<#directivenameparameters>海岸线网络聚合@"S#LSG${c~9`S"L/B(@
终止标记:
#directivename>海岸线网络聚合8CiLo2lDj
空内容指令标记:
<#directivenameparameters/>
LCGFmyml/ZQ0
● 有两种类型的指令:
预概念指令和用户概念指令海岸线网络聚合PI6tg6RT
s_S&U&L
● 用户概念指令要利用@替换#,如<@mydirective>...@mydirective>
4X#l_v
gL
F0
● FTL标记不能够交叉,而应该正确的嵌套海岸线网络聚合0f7b1j'e}_)f6lTu
4]vxi,MViup0
海岸线网络聚合8rS+U1n#V3U\/H|
FreeMarker开发环境搭建
下载FreeMarker
FreeMarker的主页地址:
海岸线网络聚合tb/}3T"Ua$U
笔者利用的FreeMarker版本是,下载地址:
eJX)v~\`;_(A0
0zYdF%E/fw[[-s0
oB7E[sN'fu0
配置FreeMarker很简单,只要解压您适才下载的,然后将放入您项目的lib文件夹下即可。
不需要特殊的配置。
若是你需要利用JDK的话,能够将FreeMarker配置到环境变量中,能够是类似于如此的D:
\加到环境变量CLASSPATH中。
海岸线网络聚合n:
Wk:
e.@;kH$m
若是在Eclipse下开发的话,最好再下一个FreeMarkerIDE利用,它是Eclipse下开发FreeMarker的插件,固然还有其它的插件FreeMarkerEclipsePlugin,那个要紧取决于个人适应问题了。
FreeMarkerIDE下载地址:
依照Eclipse的版本来下载。
安装FreeMakerIDE很简单只要解紧缩放到Eclpise中的plugins即可。
6vyur.^9I]0
测试的目的是看环境变量CLASSPATH是不是配置正确。
先写一个简单的测试代码海岸线网络聚合2n_JNB7rVU)p
import.*;海岸线网络聚合3wW(@/M(I7DI
import.*;
8c
x8ZGD%VS"f4SQ0
import.*;海岸线网络聚合.A&NJ]!
t3jJ
wuV5J"@
Z0
publicclassHelloWorld{
9H:
y
{.u(MK0
privateConfigurationcfg;
/o:
RM;F"r'g0e+u
?
%w(\tQ6_#oc'y0
publicConfigurationgetCfg(){海岸线网络聚合@"Ec8TS5F-Sh"W#L7Wn
returncfg;
J4dj6]Qw4~Ei,^.O0
}
||+?
3s9lkO0
publicvoidinit()throwsException{海岸线网络聚合WB[w;H
g"wYe
cfg=newConfiguration();
(newFile("D:
/freemarker_project/template"));
`6o6p4\3nY0aEw0
}
Mo+RL6}/\0
publicstaticvoidmain(String[]args)throwsException海岸线网络聚合n;a(t,x2go9ty
{
}qpq1i+F:
BF"jx0
HelloWorldbj=newHelloWorld();海岸线网络聚合fw5u&q%T)Y
();
+`7XL0
Maproot=newHashMap();
Y&|'b/l$?
dL9ik1|:
P+M0
海岸线网络聚合0Q2\fu&XD6Jy9k
Templatet=().getTemplate("");海岸线网络聚合!
f#a}g3t~
o8I1~F2p%`3b0
Writerut=newOutputStreamWriter(newFileOutputStream("D:
/freemarker_project/out/"),"GBK");
~o0guJ0
(root,out);海岸线网络聚合,Go[B]?
&V[/WPH
"Successfull................");
IWF9O+A0
}海岸线网络聚合{4`&IVD0eS;b
}海岸线网络聚合Zz#GPm&f9we
"F&H'jc;b0
再写一个模板海岸线网络聚合(e)OCSB
p#r
<#macrogreetperson>
itJT:
}6M0
Hello${person}!
海岸线网络聚合O$_&?
QOTnr*YW
#macro>海岸线网络聚合*W6TCKf?
2{0\
Edsd+UPk^.H0
海岸线网络聚合"J)qe%@!
J/G
Hks,jx
S.{jb6`%c,Xgk0
海岸线网络聚合R@2DuB2hT6IW"k{
海岸线网络聚合2V9WL)f/}(~c<@greetperson="沈哲"/>
],UC0ssc6U0
海岸线网络聚合
Yc(U1fiH&K"HeLz
海岸线网络聚合JUBuY9eog
海岸线网络聚合;m,?
*VX@X
海岸线网络聚合m0~G9NE%[)B!
X
测试成功生成了,咱们在阅读器下运行一下看看成效。
'~V"|.XG2~(Riy%r0
r
@4xQK5C0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- freemarker 配置 步骤