1. 程式人生 > >Velocity學習(1)--hello world

Velocity學習(1)--hello world

主要內容:
(1)velocity的介紹
(2)Servlet+velocity 環境搭建和 Demo

1 velocity的介紹

velocity 是 apache 開發的一個基於 Java 的模板引擎,通過 velocity 特定的語法 VTL,能夠在一段文字(模板)中引用 Java 物件的屬性,以達到模板+資料模型(Java 物件)生成特定文字的目的。將模板引擎用於 web 開發,能夠實現 Java 程式碼從顯示的頁面中分離,便於介面設計人員和 Java 程式設計師的分工。

2 Hello World

建立一個web專案

pom.xml

匯入相應的jar

<dependency
>
<groupId>org.apache.velocity</groupId> <artifactId>velocity</artifactId> <version>1.7</version> </dependency> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-tools</artifactId> <version>2.0</version
>
</dependency>

DemoServlet.java

package com.wuk.velocity;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


@WebServlet
("/DemoServlet") public class DemoServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request,response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setAttribute("text", "hello"); request.getRequestDispatcher("/WEB-INF/hello.vm").forward(request, response); } }

web.xml的配置

    <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>

注意要攔截所有的vm頁面請求進行處理

hello.vm

<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>Test Velocity</title>
</head>
<body>
<p>$text</p>
</body>
</html>