Velocity学习(一)Hello World

阅读更多

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

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


	

hello world$name

 当客户端请求上面页面,服务端需要给上面的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根目录下为例进行配置。


Velocity学习(一)Hello World_第1张图片

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

  	
  	  
           org.apache.velocity.properties  
           velocity.properties  
  	 
  	  
            org.apache.velocity.toolbox
    		/WEB-INF/tools.xml
  	
  	 
	
		MyVelocityServlet
		org.lian.servlet.MyVelocityViewServlet
	
	
		MyVelocityServlet
		/servlet/hello
	
	
	

 下面可以查看一下我们的结果
Velocity学习(一)Hello World_第2张图片
 


 

  • Velocity学习(一)Hello World_第3张图片
  • 大小: 12.4 KB
  • Velocity学习(一)Hello World_第4张图片
  • 大小: 39.8 KB
  • 查看图片附件

你可能感兴趣的:(模板引擎,Velocity)