1.0          其他語言
 
 

2.2 Velocity HTML 模板

 
 

"Velocity 是一個基于 Java 的模板引擎." 這是 Apache 的官方言論,對于一個沒有模板相關編程概念的人並不容易被理解。

換一種說法,可能會更容易理解,Velocity 是基于字串取代的 Java 類庫。

舉例來說,Middlegen 使用 Velocity 來產生關連型資料庫相關的 Java bean 檔案,只需要定一個模板檔案來規定格式。

Veloicty 不需要 J2EE 伺服器。這意味著,如果我們使用 Velocity 來產生動態 HTML 頁面,我們就可以在沒有 J2EE 伺服器的情況下執行單元測試。根據我們的經驗,這會讓編程更快。

這里是一個使用 Velocity 產生動態 HTML 頁面的例子︰

以上檔案是純粹的 HTML 檔案,可以使用網頁編輯器進行排版編輯。這里是 Java 代碼︰

 
   

 
   

public class ViewCartDispatcher extends QueryDispatcher {
    public boolean process(HttpServletRequest request, WebAppContext webContext, Controller controller) throws Exception {
        this.setHtmlTemplateFileName("cart/view_cart.htm");
        this.setPageTitle("View cart"); HttpSession session = request.getSession();
        Cart cart = (Cart) session.getAttribute(Cart.KEY_IN_SESSION);
        ...
        if (cart != null) {
            List cartItemList = cart.getAllCartItems();
            Collections.sort(cartItemList);
            webContext.put("cart_item_list", cartItemList);
            ...
        }
        ...
        return true;
    }public String getUrlId() {
        return "view_cart";
    }
}

 
   

 

這是執行結果頁面︰

容易吧?

我們還使用 Velocity 來定版面。這意味著所有頁面都有相同的頁頭,頁腳,左菜單,右告示,等等。