Java/Velocity/Calculation

Материал из Java эксперт
Перейти к: навигация, поиск

Calculation Based on Model

   <source lang="java">

import java.io.StringWriter; import java.io.Writer; import java.util.ArrayList; import java.util.Collection; import org.apache.velocity.Template; import org.apache.velocity.VelocityContext; import org.apache.velocity.app.Velocity; public class ProductList {

   public static void main(String[] args) throws Exception {
       Velocity.init();
       
       Template t = Velocity.getTemplate("./src/model.vm");
       
       VelocityContext ctx = new VelocityContext();
      
       Collection products = new ArrayList();
       products.add(new Product("Product 1", 142.919));
       products.add(new Product("Product 2", 133.199));
       products.add(new Product("Product 3", 112.991));
       ProductListModel model = new ProductListModel(products);
       ctx.put("model", model);
       
       Writer writer = new StringWriter();
       t.merge(ctx, writer);
       
       System.out.println(writer);
   }

}


import java.util.Collection; import java.util.Iterator; public class ProductListModel {

 private Collection productList = null;
 private double totalPrice = Double.MIN_VALUE;
 public ProductListModel(Collection aProductList) {
   productList = aProductList;
 }
 public Collection getProductList() {
   return productList;
 }
 public void setProductList(Collection aProductList) {
   productList = aProductList;
 }
 public double getTotalPrice() {
   if (totalPrice == Double.MIN_VALUE) {
     totalPrice = 0;
     Iterator itr = productList.iterator();
     while (itr.hasNext()) {
       Product p = (Product) itr.next();
       totalPrice += p.getPrice();
     }
   }
   return totalPrice;
 }

}


public class Product {

   private String name;
   private double price;
   
   public Product(String aName, double aPrice) {
       name = aName;
       price = aPrice;
   }
   
   public String getName() {
       return name;
   }
   public void setName(String name) {
       this.name = name;
   }
   public double getPrice() {
       return price;
   }
   public void setPrice(double price) {
       this.price = price;
   }

}


  1. foreach($product in $model.productList)

$product.Name $$product.Price

  1. end

Total Price: $$model.totalPrice

      </source>
   
  
 
  



Calculation In Java

   <source lang="java">

import java.io.StringWriter; import java.io.Writer; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import org.apache.velocity.Template; import org.apache.velocity.VelocityContext; import org.apache.velocity.app.Velocity; public class ProductList {

 public static void main(String[] args) throws Exception {
   Velocity.init();
   Template t = Velocity.getTemplate("./src/calculation.vm");
   VelocityContext ctx = new VelocityContext();
   Collection products = new ArrayList();
   products.add(new Product("Product 1", 12.99));
   products.add(new Product("Product 2", 13.99));
   products.add(new Product("Product 3", 11.99));
   ctx.put("productList", products);
   // calculate total
   Iterator itr = products.iterator();
   double total = 0.00;
   while (itr.hasNext()) {
     Product p = (Product) itr.next();
     total += p.getPrice();
   }
   ctx.put("totalPrice", new Double(total));
   Writer writer = new StringWriter();
   t.merge(ctx, writer);
   System.out.println(writer);
 }

}


public class Product {

   private String name;
   private double price;
   
   public Product(String aName, double aPrice) {
       name = aName;
       price = aPrice;
   }
   
   public String getName() {
       return name;
   }
   public void setName(String name) {
       this.name = name;
   }
   public double getPrice() {
       return price;
   }
   public void setPrice(double price) {
       this.price = price;
   }

}


  1. foreach($product in $productList)

$product.Name $$product.Price

  1. end

Total Price: $$totalPrice

      </source>