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 来定版面。这意味着所有页面都有相同的页头,页脚,左菜单,右告示,等等。