`

Velocity布局祥解

阅读更多

大多数网站的每个页面布局差别不是太大,除非一些特殊页面例如 门户首页等。如果每个页面独立一个文件,则会导致不同文件出现大量相同的代码,我们也可以把这些相同的代码抽取出来放在一个独立的小文件,需要的时候利用 Velocity的#parse指令来嵌入到目标页面中。但是此法却对页面上用于控制排版的HTML代码无效,因为控制整个页面排版的代码一般会贯穿整个 文件,开头、结尾皆有,无法分拆到独立的文件上,因此就有将页面的layout独立出来的,以减小页面的代码量的需要。

我在用Velocity时一般都是使用Velocity-Tools项目的VelocityViewServlet来负责解析所有Velocity 模板的请求,其实VelocityTools也提供另外一个Servlet便是VelocityLayoutServlet,该类直接从 VelocityViewServlet继承而来,通过使用VelocityLayoutServlet可以让我们很容易的将页面的布局控制模板和数据模 板分隔开来。欲使用此功能,请遵循以下步骤:

1。使用VelocityLayoutServlet类:原先的VelocityViewServlet直接替换成 VelocityLayoutServlet;

2。配制VelocityLayoutServlet:打开velocity.properties增加配制如下:

 

#  处理错误信息的模板路径
#  relative to web application root directory
tools.view.servlet.error.template = error.vm

#  所有布局文件的默认路径
#  relative to web application root directory
tools.view.servlet.layout.directory = /WEB-INF/layout/

#  默认的布局文件
#  relative to the layout directory
#  NOT relative to the root directory of the webapp!
tools.view.servlet.layout.default.template =  default.vm

3。布局测试

编写测试布局文件default.vm放置于上述配置中的默认布局文件存放路径中,内容如下

 

<html>
<head>
  <title>
$!page_title</title>
</head>
<body>
  $screen_content
</body>
</html>

上面源码中$screen_content便是VelocityLayoutServlet保留的关键字,Velocity依此关键字来潜入实际被 引用的页面内容,其他变量开发者可以灵活处理。

另编写测试页面test.vm存放于web根目录下,内容如下

 

#set($page_title="Layout Test")
Hello Velocity Layout!

启动服务器,测试该页面输出的HTML内容如下:

 

<html>
<head>
  <title>
Layout Test
</title>
</head>
<body>
  Hello Velocity Layout!
</body>
</html>

如此便达到我们预期的效果,如何使用便是听凭各位发落:)

分享到:
评论

相关推荐

    Velocity标签详解文档

    它采用模板语言(Template Language),使得非程序员,如网页设计师,能够专注于页面布局和样式设计,而将复杂的业务逻辑留给Java程序员处理。这种分离使得开发过程更为高效,尤其在遵循MVC(Model-View-Controller...

    仿Iphone中搜索结果的布局详解

    例如,`ANIMATION_VELOCITY`定义了动画的速度,`WIDGET_TOP_OFFSET`则是搜索框与屏幕顶部的距离。 `ListView` `mSearchResultList`用于显示搜索结果,而`LinearLayout` `mSearchResult`可能是用来包裹整个搜索结果...

    Velocity详解(初学者建议看)

    ### Velocity详解:初学者入门指南 #### 一、Velocity简介 Velocity是一款强大的模板引擎,专为Java开发者设计,用于在不编写任何Java代码的情况下生成HTML、XML、TXT等格式的输出文档。它允许用户通过简单的模板...

    maven velocity

    ** Maven与Velocity整合详解 ** Maven和Velocity都是在Java开发中非常重要的工具。Maven是一个项目管理和综合工具,它帮助开发者管理项目的构建、报告和文档。Velocity则是一个基于Java的模板引擎,它允许开发者将...

    velocity官方工具包

    **Velocity官方工具包详解** Velocity是一款强大的Java模板引擎,它由Apache软件基金会开发并维护,是Apache Jakarta项目的一部分。Velocity的主要目标是将呈现逻辑从应用逻辑中分离出来,使得开发者可以专注于业务...

    velocity中文

    **Velocity中文手册与学习资料详解** Velocity是一款基于Java的模板引擎,它允许开发者将HTML页面设计与业务逻辑相分离,让网页设计人员专注于页面布局,而程序员则专注于编写控制逻辑。Velocity通过简单的语法使得...

    Velocity 模版

    **Velocity 模板技术详解** Velocity 是一个开源的 Java 模板引擎,它允许开发者将业务逻辑与 HTML、XML 或其他格式的文档呈现分离开来,使得非程序员也能轻松地编辑网页布局。Velocity 被广泛应用于 Web 开发中,...

    Velocity非常容易学会

    ### Velocity 模板引擎知识点详解 #### 一、Velocity简介 Velocity是一款强大的基于Java的模板引擎,它允许用户通过一种简单且易于理解的模板语言来访问由Java代码定义的对象。Velocity的设计初衷是为了使得Web...

    velocity 配置jar包

    ** Velocity 模板引擎配置详解 ** Velocity 是一个开源的 Java 模板引擎,它允许开发者将业务逻辑与页面展示分离,使得 HTML 页面更专注于布局和设计,而将动态数据处理交由后端代码处理。Velocity 通过使用简单的...

    Velocity Suite 1.2.3

    **Velocity Suite 1.2.3 - Dreamweaver 插件详解** Velocity Suite 1.2.3 是一款专为Adobe Dreamweaver设计的插件,它为开发者提供了在Dreamweaver环境中高效地编写和管理Velocity模板语言的能力。Velocity是Apache...

    velocity模板引擎

    ### Velocity 模板引擎知识点详解 #### 一、Velocity简介及基本概念 Velocity与Freemarker、JSTL并称为Java Web开发中的三大标签技术。Velocity是一种基于Java的模板引擎,它允许Web开发者通过简单的模板语法来生成...

    Velocity教程

    Velocity教程详解 Velocity是一个强大的基于Java的模板引擎,它的核心目标是将HTML页面中的呈现逻辑与业务逻辑分离,实现Model-View-Controller(MVC)架构。这使得开发者能够专注于编写Java代码,而设计师可以专注...

    Velocity中文手册

    ### Velocity中文手册知识点详解 #### 一、Velocity简介与应用场景 **Velocity** 是一款基于 Java 的模板引擎,它提供了一种简洁高效的语法——**Velocity 模板语言 (VTL)**,用于引用 Java 代码中定义的对象。这...

    velocity官方实例

    **Velocity官方实例详解** Velocity是Apache软件基金会的一个开源项目,它是一个基于Java的模板引擎,用于生成动态内容。Velocity在Web开发中常被用来生成HTML、XML、Java源代码等静态页面,尤其适用于构建可定制化...

    Velocity模板应用

    ** Velocity模板应用详解 ** Velocity是一款强大的Java模板引擎,它为开发者提供了一种与呈现逻辑分离的方式,使得HTML、XML或者其他格式的文档可以更清晰地与业务逻辑代码分开。Velocity被广泛应用于Web应用开发,...

    Velocity中文指南

    #### 三、Velocity模板语言(VTL)详解 VTL是一种专为Velocity设计的模板语言,其语法简洁明了,易于学习,尤其适合那些具有一定编程基础但并不精通Java的页面设计者。VTL通过变量引用、控制结构、函数调用等语法...

    velocity基本语法

    ### Velocity基本语法详解 #### 一、变量 **1.1 变量的定义** 在Velocity模板语言中,变量的定义使用`#set`指令。Velocity支持弱类型的变量定义,这意味着在定义变量时无需指定其数据类型。例如: ```velocity #...

    velocity中文版教程

    ### Velocity中文版教程详解 #### 一、Velocity简介与应用场景 **Velocity** 是一款基于 Java 的模板引擎,它提供了一种简洁高效的模板语言,让用户能够轻松地引用由 Java 代码定义的对象。通过这种方式,Velocity...

    velocity的帮助

    ### Velocity技术详解 #### 一、Velocity概述 **Velocity**是一种强大的开源模板引擎,它能够帮助开发者轻松地在Web应用程序中实现动态内容的生成。它主要用于处理MVC(Model-View-Controller)架构中的视图层,即...

    velocity-texen111

    **Velocity-Texen详解** Velocity-Texen是一个基于Apache Velocity模板引擎的脚本工具,用于自动化生成静态或动态内容,如HTML、XML、Java源代码等。它在软件开发过程中,尤其是在快速应用开发(RAD)和敏捷开发...

Global site tag (gtag.js) - Google Analytics