多数情况下,一个叶分发器代表一个网络请求,也可以称之为一个功能点。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";
}
}
|