1.0          其他语言
 
 

3.3.1 普通叶分发器

 
 

多数情况下,一个叶分发器代表一个网络请求,也可以称之为一个功能点。VelocityWeb 中术语 "普通叶分发器" (normal leaf dispatcher) 意味着没有失败的叶分发器。比如,一个搜索页面,或者一个显示页面。

在普通叶分发器中,读取 HTTP 请求数据,调用业务函数,将结果数据放入到 WebAppContext 中。然后 VelocityWeb 框架会显示到结果页面中。

这是一个例子:

public class ViewProductDispatcher extends QueryDispatcher {
        
        public boolean process(HttpServletRequest request, WebAppContext context,
                Controller controller) throws Exception {

            this.setHtmlTemplateFileName("product/view_product.htm");
            this.setPageTitle("View product");

            String productId = request.getParameter("product_id");

            ProductService service = new ProductService(context);
            String productName = service.getProductNameById(productId);
            List productItemList = service.getProductItemsById(productId);

            context.put("product_name", productName);
            context.put("product_item_list", productItemList);
            context.put("view_product_item_url", DispatcherTreeManager.getUrl(ViewProductItemDispatcher.class));
            context.put("add_cart_item_url", DispatcherTreeManager.getUrl(AddItemToCartDispatcher.class));

            return true;
        }

        public String getUrlId() {
            return "view_product";
        }

}