eclipse開發velocity例項(初學)
開發環境
Eclipse Java EE IDE for Web Developers.(Version: Helios Service Release 1)
jdk1.6.0_07
apache-tomcat-6.0.10
首先需要為eclipse安裝velocity編輯外掛:
在Eclipse的Help->Install New Software...
點選“Add加 Veloeclipse,值:http://veloeclipse.googlecode.com/svn/trunk/update/
備註:如果無法安裝,在安裝外掛的介面中把 Group Items by Catagory 前打鉤去掉
建立專案
開啟eclipse,File -> New -> Other... -> Web -> Dynamic Web Projec 之後按照提示一路next;
注意1:修改程式碼檔案輸出路徑,預設是build\classes;這個不符合tomcat的要求,需要改成WebContent\WEB-INF\classes 如下:
注意2:勾選 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>
<head><title>Sample velocity page</title></head>
<body bgcolor="#ffffff">
<center>
<h2>Hello My First Velocity</h2>
<table width="100" cellpadding="5" cellspacing="1" bordercolor="#333333">
<tr><td bgcolor="#eeeeee" align="center">name list</td></tr>
#foreach ($name in $theList)
<tr><td bgcolor="#6666FF" align="center">$name</td></tr>
#end
</table>
</center>
</body>
</html>
新增java類檔案
在Java Resource -> src下新建一個包,包名com.velocitydemo.velocityhandler,名稱隨意,後面配置檔案裡要用到,前後需要一致
在該包下新增一個類,類名HelloHandler,名稱隨意,道理同上
類的程式碼如下:
package com.velocitydemo.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;
public void init() throws ServletException {
velo = new VelocityEngine();// velocity引擎物件
Properties prop = new Properties();// 設定vm模板的裝載路徑
String path = this.getServletContext().getRealPath("/");
prop.setProperty(Velocity.FILE_RESOURCE_LOADER_PATH, path + "templates/");
try {
velo.init(prop);// 初始化設定,下面用到getTemplate("*.vm")輸出時;一定要呼叫velo物件去做,即velo.getTemplate("*.vm")
} catch (Exception e1) {
e1.printStackTrace();
}
}
protected Template handleRequest(HttpServletRequest request, HttpServletResponse response, Context ctx) {
String p1 = "Charles";
String p2 = "Michael";
Vector personList = new Vector();
personList.addElement(p1);
personList.addElement(p2);
ctx.put("theList", personList); // 將模板資料 list放置到上下文環境context中
Template template = velo.getTemplate("hello.vm");
return template;
}
}
配置web.xml
開啟WEB-INF下的web.xml檔案,內容如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<display-name>velocity-demo</display-name>
<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>com.velocitydemo.velocityhandler.HelloHandler</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>/hello</welcome-file>
</welcome-file-list>
</web-app>
至此一個最簡單的velocity專案建立完畢
注意:WEB-INF下的classes資料夾並不顯示在專案結構圖中
釋出專案
到這裡可以把專案資料夾中的WebContent釋出到Tomcat中進行測試了
啟動tomcat訪問一個最簡單的velocity專案
這個例項非常簡單,小弟也是剛剛接觸velocity,還請各位多指點,謝謝