必備環境: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項目成功了!