Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1002338
  • 博文数量: 152
  • 博客积分: 4937
  • 博客等级: 上校
  • 技术积分: 1662
  • 用 户 组: 普通用户
  • 注册时间: 2007-10-05 16:55
文章分类

全部博文(152)

文章存档

2013年(12)

2012年(6)

2011年(58)

2010年(43)

2009年(1)

2008年(15)

2007年(17)

我的朋友

分类: Java

2010-07-09 18:27:23

最新的velocity1.6配置,开发,实例(二)
2009年07月24日 星期五 12:15

这次我们使用velocityLayoutServlet来代替VelocityViewServlet。

因为VelocityViewServlet只是作为一个页面来显示,而加了layout的好处就是,默认的布局大框架不变,而只是填充的内容不同。就像蛋筒冰淇淋,外面的脆皮筒都是相同的,不同的只是内部的冰淇淋,有草莓味的,苹果味的,香草味的,卡布奇诺味的等等。

将上期的web.xml中的VelocityViewServlet部分改成velocityLayoutServlet,例如:


    velocitylayout
    org.apache.velocity.tools.view.servlet.VelocityLayoutServlet

为了查看方便,我再贴一次上一次的目录结构:

接下来,我们需要新建一个布局,作为外部的框架。默认的布局文件名字为default.vm,放在WEB-INF/templates/layout目录下(为什么放这里,等一下再介绍),内容为:


   
        it's a default page.
        $screen_content

其中的$screen_content为veloctiy的页面占位符,相当于冰淇淋的筒做好了,这个地方是放冰淇淋的,我们只要另外做一个内容页引入进来就可以了。

我们再新建另外一个布局文件,命名为page.vm,作为测试布局,当没有任何布局的时候,才会调用默认布局。内容为:


   
        style="border:solid 1px black;padding:20px;">
        $screen_content
       


   

布局建好后,我们自然需要填入一些内容,建立内容文件,index.vm,我这里放在WEB-INF根目录下,为的是。index.vm文件内容为:


#set($hello="Velocity")

    Welcome to $hello World !

$set这些我就不解释了,相当于赋值和初始化变量。

最后,是我们最重要的配置文件,velocity.properties,这个名字是velocity默认的配置文件名,默认位置在WEB-INF目录下,如果名字或者路径非默认,则需要在web.xml的servlet初始化参数中加入相应的路径,这里就不涉及了,需要的请看我的另一篇文章《velocity的默认配置路径

velocity.properties和之前的有所区别,具体的区别就是路径增多。

# Filepath for error template,
# relative to web application root directory
tools.view.servlet.error.template = error.vm

# Directory for layout templates,
# relative to web application root directory
tools.view.servlet.layout.directory = /layout/

# Filepath of the default layout template
# relative to the layout directory
# NOT relative to the root directory of the webapp!
tools.view.servlet.layout.default.template = Default.vm

input.encoding=gbk
output.encoding=gbk

webapp.resource.loader.path=/
webapp.resource.loader.path=/WEB-INF/templates/
velocimacro.library=VM_global_library.vm

在定义了webapp.resource.loader.path这个根目录后(可多个),velocity就会自动在这个目录下寻找相应的文件。看了绿色的英文注释后,应该明白,error.vm是根据webapp的目录寻找,default.vm是根据配置的layout目录寻找。

运行下看看,是不是默认布局出来了,两者整合在一起了。

如果url写成index.vm?layout=page.vm这种形式,那么,就会调用到特定的布局。

也可以在vm一开始就设定好该页使用的布局。

#set($layout = "page.vm" )
#set($hello="Velocity")

    Welcome to $hello World11 !

这样,就可以直接使用布局。当不存在该布局时,就会调用默认布局。

懒人的第二期结束-。-!敬请期待第三次。。。。

阅读(3669) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~