用eclipse建立一個最簡單的velocity項目

必備環境: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

  1. <html>  

  2. <head><title>Sample velocity page</title></head>  

  3. <body bgcolor="#ffffff">  

  4.     <center>  

  5.             <h2>Hello Velocity</h2>  

  6.             <table width="100" cellpadding="5" cellspacing="1" bordercolor="#333333">  

  7.             <tr><td bgcolor="#eeeeee" align="center">Names</td></tr>  

  8.             #foreach ($name in $theList)  

  9.             <tr><td bgcolor="#6666FF" align="center">$name</td></tr>  

  10.             #end  

  11.         </table>  

  12.     </center>  

  13. </body>  

  14. </html>  

第四步:添加java類文件

在Java Resource -> src下新建一個包,包名稱我取名叫velocityHandler,名稱隨意,後面配置文件裏要用到,先後一致就行。

在該包下添加一個類,類名我叫HelloHandler,這個也隨意,道理同上。

類的代碼:

[java] view plaincopy

  1. package velocityHandler;  

  2.   

  3. import java.util.Properties;  

  4. import java.util.Vector;  

  5.   

  6. import javax.servlet.ServletException;  

  7. import javax.servlet.http.HttpServletRequest;  

  8. import javax.servlet.http.HttpServletResponse;  

  9.   

  10. import org.apache.velocity.Template;  

  11. import org.apache.velocity.app.Velocity;  

  12. import org.apache.velocity.app.VelocityEngine;  

  13. import org.apache.velocity.context.Context;  

  14. import org.apache.velocity.tools.view.VelocityViewServlet;  

  15.   

  16. public class HelloHandler extends VelocityViewServlet{  

  17.     private static final long serialVersionUID = 1L;  

  18.     private VelocityEngine velo;    

  19.   

  20.     @Override  

  21.     public void init() throws ServletException{    

  22.   

  23.        //velocity引擎對象                    

  24.        velo = new VelocityEngine();   

  25.          

  26.        //設置vm模板的裝載路徑  

  27.        Properties prop = new Properties();  

  28.        String path = this.getServletContext().getRealPath("/");  

  29.        prop.setProperty(Velocity.FILE_RESOURCE_LOADER_PATH, path + "templates/");  

  30.          

  31.        try {  

  32.           //初始化設置,下面用到getTemplate("*.vm")輸出時  

  33.           //必定要調用velo對象去作,即velo.getTemplate("*.vm")  

  34.           velo.init(prop);  

  35.          } catch (Exception e1) {  

  36.           e1.printStackTrace();  

  37.          }  

  38.     }  

  39.       

  40.     @SuppressWarnings("unchecked")  

  41.     @Override  

  42.     protected Template handleRequest(HttpServletRequest request,  

  43.             HttpServletResponse response, Context ctx) {  

  44.           

  45.         String p1 = "Hoffman";  

  46.         String p2 = "Song";  

  47.         @SuppressWarnings("rawtypes")  

  48.         Vector personList = new Vector();  

  49.         personList.addElement(p1);  

  50.         personList.addElement(p2);  

  51.         ctx.put("theList", personList); //將模板數據 list放置到上下文環境context中  

  52.       

  53.         Template template = velo.getTemplate("index.vm");  

  54.         return template;  

  55.     }  

  56. }  

第五步:配置

打開WEB-INF下的web.xml文件,設置爲下面內容:

[html] view plaincopy

  1. <?xml version="1.0" encoding="UTF-8"?>  

  2. <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"  

  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  

  4.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   

  5.     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  

  6.     <servlet>  

  7.         <servlet-name>velocity</servlet-name>  

  8.         <servlet-class>org.apache.velocity.tools.view.VelocityViewServlet</servlet-class>  

  9.     </servlet>  

  10.     <servlet-mapping>  

  11.         <servlet-name>velocity</servlet-name>  

  12.         <url-pattern>*.vm</url-pattern>  

  13.     </servlet-mapping>  

  14.       

  15.       

  16.     <servlet>  

  17.         <servlet-name>hello</servlet-name>  

  18.         <servlet-class>velocityHandler.HelloHandler</servlet-class>  

  19.     </servlet>  

  20.     <servlet-mapping>  

  21.         <servlet-name>hello</servlet-name>  

  22.         <url-pattern>/hello</url-pattern>  

  23.     </servlet-mapping>  

  24.   

  25.     <welcome-file-list>  

  26.         <welcome-file>/templates/index.vm</welcome-file>  

  27.     </welcome-file-list>  

  28. </web-app>  

至此一個最簡單的velocity項目建立完畢:


注:WEB-INF下的classes文件夾並不顯示在項目結構圖中

測試:

複製項目文件夾中的WebContent:

放在tomcat下:


這裏你能夠給文件夾更名

啓動tomcat ,輸入下面網址:


哈哈,最簡單的一個velocity項目成功了!

相關文章
相關標籤/搜索