`

Velocity学习(一)Hello World

阅读更多

Velocity模板引擎技术功能十分强大,在这里仅简单学习了一些入门知识,深入的知识需要在实际开发中运用中慢慢积累经验。这里讲解一下在web application环境中简单使用Velocity。

创建一个View来展示数据,这里以HTML文件作为Template,通过Velocity来填充动态数据。创建一个简单HTML文件 hello.html。

<body>
	<div style="margin:20px;"></div>
	<div style="width:80%;">
		<h3>hello world<span style="color:red;">$name</span></h3>
	</div>
</body>

 当客户端请求上面页面,服务端需要给上面的Template填充动态数据生产出HTML界面返回给客户端,这里没有使用Struts2和SpringMVC等第三方框架。创建一个Servlet对象通过继承VelocityViewServlet,可以简化开发。

public class MyVelocityViewServlet extends VelocityViewServlet {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@Override
	protected Template handleRequest(HttpServletRequest request,
			HttpServletResponse response, Context ctx) {
		ctx.put("name", "Velocity");
		return getTemplate("hello.html");

	}

}

 完成了以上两个步骤,至少有一个问题没有解决那就是Template文件(hello.html)应该放到哪个路径下?

也就是VelocityViewServlet会从哪个路径下加载Template文件的问题?通过配置velocity.properties文件可以解决加载文件路径问题。

#模板的加载路径
webapp.resource.loader.path=/WEB-INF/vm/
## 设置模板文件加载器,webapp从应用根目录加载
resource.loader = webapp
webapp.resource.loader.class = org.apache.velocity.tools.view.WebappResourceLoader
## 设置编码
input.encoding = UTF-8
output.encoding = UTF-8

 创建了velocity.properties文件,引入了一个新的问题,这个配置文件又该放到哪儿?通过查询官方文档,Velocity会检索WEB-INF目录,来查找配置文件。将配置文件放到WEB-INF目录下即可。如果不放WEB-INF目录下,也可以自定义路径,但是也不是随便把配置文件放到一个随意的目录,Velocity会以WebRoot目录作为根目录查找velocity.properties配置文件。将配置文件放到WebRoot根目录下为例进行配置。


通过在web.xml文件中进行配置,让velocity来找到velocity.properties。

  	<!-- 相对于webroot路径 使用classpath写法无效  -->
  	<context-param>  
           <param-name>org.apache.velocity.properties</param-name>  
           <param-value>velocity.properties</param-value>  
  	</context-param> 
  	<context-param>  
            <param-name>org.apache.velocity.toolbox</param-name>
    		<param-value>/WEB-INF/tools.xml</param-value>
  	</context-param>
  	 
	<servlet>
		<servlet-name>MyVelocityServlet</servlet-name>
		<servlet-class>org.lian.servlet.MyVelocityViewServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>MyVelocityServlet</servlet-name>
		<url-pattern>/servlet/hello</url-pattern>
	</servlet-mapping>
	
	

 下面可以查看一下我们的结果

 


 

  • 大小: 12.4 KB
  • 大小: 39.8 KB
分享到:
评论

相关推荐

    Velocity之HelloWorld配置

    在这个“Velocity之HelloWorld配置”中,我们将深入探讨如何设置和运行一个简单的Velocity HelloWorld示例。 首先,让我们了解Velocity的基本工作原理。Velocity使用一种称为模板的语言,它允许在HTML或XML文档中...

    SpringMVC_HelloWorld:SpringMVC的一个hello world的demo,开启学习SpringMVC的大门

    SpringMVC_HelloWorld SpringMVC的一个hello world的demo,开启学习SpringMVC的大门。 SpringMVC 框架提供了一个DispatchServlet作为前端控制器...创建一个项目名称为SpringMVC_HelloWorld 目录结构如下: maven中的配置

    Velocity中文学习指南

    ### Velocity中文学习指南 #### 一、Velocity简介与应用场景 **Velocity** 是一款基于 Java 的模板引擎 (template engine),它让非技术背景的用户能够轻松地利用模板语言引用由 Java 代码定义的对象。这种能力使得...

    Velocity学习指南

    例如,下面的代码会在页面上显示 "Hello Velocity World!": ```html #set($foo = "Velocity") Hello $foo World! ``` #### 总结 Velocity 是一个功能强大的模板引擎,不仅适用于 Web 开发,还可以用于生成 ...

    velocity入门使用教程

    入门部分通过编写一个简单的“Hello, World”程序展示了Velocity的基本使用流程。首先,创建一个模板文件(.vm),在这个文件中使用VTL语法定义输出格式。然后,在Java代码中初始化Velocity引擎,并通过Velocity引擎...

    velocity 中文开发文档

    - **解释**:这段代码首先使用 `#set` 语句设置了变量 `$foo` 的值为 `"Velocity"`,然后在页面中引用 `$foo` 来输出文本 "Hello Velocity World!"。 #### 六、注释 - **单行注释**:以 `##` 开头,表示单行注释...

    velocity简单小例子

    Velocity是Apache软件基金会的一个开源项目,它是一款Java模板引擎,用于生成动态Web内容。这个“velocity简单小例子”应该是为了演示如何在Java项目中使用Velocity进行模板开发的基础操作。在这个例子中,我们将...

    velocity示例

    在"velocity示例"中,你可能会看到如何使用这些语法来构建一个简单的HelloWorld程序。 ** Velocity上下文(Context) ** 在Velocity中,Context是连接模板和Java代码的桥梁。它是一个键值对的集合,用于存放要传递...

    velocity学习指南

    Hello $a World! ``` 当页面被请求时,Velocity模板引擎会解析所有以`#`开头的指令,并根据它们执行相应的动作。对于以`$`开头的References,它会查找并输出对应的值。 VTL还支持多种控制结构,如`#if`、`#else`、...

    velocity用户手册velocity用户手册velocity用户手册

    执行结果为页面显示"Hello Velocity World!"。 **五、VTL指令与注释** 为了提高代码的可读性,建议每个VTL指令独占一行,尽管这不是强制要求。后续章节将对`set`指令等进行详述。此外,VTL支持单行注释,使用`#`...

    velocity 配置jar包

    总之,Velocity 是一个强大的模板引擎,它提供了一种简单且高效的将静态页面与动态数据解耦的方式。通过理解其基本概念、集成步骤以及功能特性,开发者可以充分利用 Velocity 来优化 Web 应用的视图层开发。

    spring mvc与velocity整合

    完成以上步骤后,启动你的Web应用,访问`http://localhost:8080/hello`,你应该能看到一个显示“Welcome to our website, World!”的页面。这表明Spring MVC已经成功地与Velocity整合,动态生成了页面内容。 总的来...

    velocity-1.7-dep.jar.zip

    当运行上述 Java 代码时,Velocity 会将 "World" 替换到模板中的 `$name`,输出 "Hello, World!"。 总的来说,"velocity-1.7-dep.jar.zip" 提供了一个便捷的方式,让开发者能够快速集成和使用 Velocity 1.7 版本,...

    Velocity模板入门DEMO

    Velocity模板语言(Velocity Template Language,简称VTL)是Apache软件基金会的Velocity项目中的一部分,它是一种用于生成动态网页内容的模板引擎。Velocity以其简洁、易读的语法,为Java开发者提供了一种高效的...

    Velocity文档中文版

    4. 可以在 HTML 文件的任何地方引用变量,例如 Hello $foo World!。 Velocity 的优点: 1. 简洁易用,易于学习和使用。 2. 能够与 Java 代码集成,生成动态网页。 3. 提供了模板服务,能够实现客户化的网页。 4. ...

    velocity文档及其详细语法

    Velocity是Apache软件基金会的一个开源项目,它是一款强大的模板引擎,用于生成动态内容。Velocity被广泛应用于Web应用开发、文档生成、报告制作等领域,因其简洁的语法和良好的可读性而备受青睐。本篇将详细介绍...

    关于velocity的基础知识

    ` 将输出 `Hello Velocity World!`。 - 条件语句:可以通过 `#if` 和 `#else` 或 `#elseif` 结构来实现条件判断。 - 循环结构:使用 `#foreach` 和 `#end` 实现循环遍历。 #### 四、示例场景分析 假设我们正在为...

    Velocity10分钟了解

    #set($foo="Hello World") ``` - **注意事项**:如果右侧的值为 `null`,则左侧的变量可能不会被赋值,具体取决于配置。 ##### 2. 条件语句 - **If/ElseIf/Else**:实现条件分支。 ```velocity #if($foo == ...

Global site tag (gtag.js) - Google Analytics