必备环境:html
JDK(不低于1.6建议1.7)、 eclipse java EE版 、tomcat(不低于5建议7.0)java
为eclipse安装velocity编辑插件:web
在Eclipse的Help->Install New Software...
apache
点击“Add加 Veloeclipse,值:http://veloeclipse.googlecode.com/svn/trunk/update/tomcat
注:若是没法安装,在安装插件的界面中把 Group Items by Catagory 前打钩去掉。app
建立步骤:eclipse
第一步:建立项目
ide
打开eclipse,File -> New -> Other... -> Web -> Dynamic Web Projecsvn
以后按照提示一路next,有两个注意地方:测试
一是修改代码文件输出路径,默认是build\classes。这个不符合tomcat的要求,须要改为下面这样:
二是勾选 Generate web.xml deployment descriptor
第二步:添加velocity依赖包
velocity相关的包有十多个,我将它们放入网盘方便你们下载,见文章未尾。下载解压后复制所有,选择项目WebContent -> WEB-INF ->lib文件夹,再选择右键菜单粘贴。
项目名右键菜单选择build path -> configure build path ->java build path ->libraries -> add jars 选择项目lib文件夹,选择所有jar最后点确认按钮。
第三步:添加velocity模板文件
在WebContent下添加一个文件夹,我起名叫templates。在该文件下添加一个hello.vm文件,里面内容:
[html] view plaincopy
<html>
<head><title>Sample velocity page</title></head>
<body bgcolor="#ffffff">
<center>
<h2>Hello Velocity</h2>
<table width="100" cellpadding="5" cellspacing="1" bordercolor="#333333">
<tr><td bgcolor="#eeeeee" align="center">Names</td></tr>
#foreach ($name in $theList)
<tr><td bgcolor="#6666FF" align="center">$name</td></tr>
#end
</table>
</center>
</body>
</html>
第四步:添加java类文件
在Java Resource -> src下新建一个包,包名称我取名叫velocityHandler,名称随意,后面配置文件里要用到,先后一致就行。
在该包下添加一个类,类名我叫HelloHandler,这个也随意,道理同上。
类的代码:
[java] view plaincopy
package velocityHandler;
import java.util.Properties;
import java.util.Vector;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.velocity.Template;
import org.apache.velocity.app.Velocity;
import org.apache.velocity.app.VelocityEngine;
import org.apache.velocity.context.Context;
import org.apache.velocity.tools.view.VelocityViewServlet;
public class HelloHandler extends VelocityViewServlet{
private static final long serialVersionUID = 1L;
private VelocityEngine velo;
@Override
public void init() throws ServletException{
//velocity引擎对象
velo = new VelocityEngine();
//设置vm模板的装载路径
Properties prop = new Properties();
String path = this.getServletContext().getRealPath("/");
prop.setProperty(Velocity.FILE_RESOURCE_LOADER_PATH, path + "templates/");
try {
//初始化设置,下面用到getTemplate("*.vm")输出时
//必定要调用velo对象去作,即velo.getTemplate("*.vm")
velo.init(prop);
} catch (Exception e1) {
e1.printStackTrace();
}
}
@SuppressWarnings("unchecked")
@Override
protected Template handleRequest(HttpServletRequest request,
HttpServletResponse response, Context ctx) {
String p1 = "Hoffman";
String p2 = "Song";
@SuppressWarnings("rawtypes")
Vector personList = new Vector();
personList.addElement(p1);
personList.addElement(p2);
ctx.put("theList", personList); //将模板数据 list放置到上下文环境context中
Template template = velo.getTemplate("index.vm");
return template;
}
}
第五步:配置
打开WEB-INF下的web.xml文件,设置为下面内容:
[html] view plaincopy
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>velocity</servlet-name>
<servlet-class>org.apache.velocity.tools.view.VelocityViewServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>velocity</servlet-name>
<url-pattern>*.vm</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>velocityHandler.HelloHandler</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>/templates/index.vm</welcome-file>
</welcome-file-list>
</web-app>
至此一个最简单的velocity项目建立完毕:
注:WEB-INF下的classes文件夹并不显示在项目结构图中
测试:
复制项目文件夹中的WebContent:
放在tomcat下:
这里你能够给文件夹更名
启动tomcat ,输入下面网址:
哈哈,最简单的一个velocity项目成功了!