using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using NVelocity;
using NVelocity.App;
using NVelocity.Context;
using NVelocity.Runtime;
using NVelocity.Tool;
using NVelocity.Util;
using Commons;
using Commons.Collections;
//http://www.cnblogs.com/McJeremy/archive/2008/06/25/1229848.html
namespace WebApplication1
{
    public partial class _Default : Page
    {
        protected void Page_Load(object sender, EventArgs e)
        { 
        VelocityEngine velocity = new VelocityEngine(); //也可以使用带参构造函数直接实例。
        ExtendedProperties props = new ExtendedProperties();
        props.AddProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, Server.MapPath("Tmp"));
        props.AddProperty(RuntimeConstants.INPUT_ENCODING, "gb2312");
        props.AddProperty(RuntimeConstants.OUTPUT_ENCODING, "gb2312");

        velocity.Init(props); 

      
        Template template = velocity.GetTemplate(@"/demo.tmp");
         
        VelocityContext context = new VelocityContext();
        context.Put("from", "Beijin");
        context.Put("to", "Xiamen");

        Model m = new Model() { Name = "QiangZhe", Age = 23, Body = new Body() { Weight = 60, Height = 163 } };

        context.Put("Model", m);

        StringWriter writer = new StringWriter();
        template.Merge(context, writer);
        Response.Write(writer.ToString());
       

        }
    }

    public class Model
    {
        public string Name { get; set; }
        public int Age { get; set; }
        public Body Body{get;set;}
    }
    public class Body
    {
        public int Height { get; set; }
        public int Weight { get; set; }
    }
}
Demo.tmp
#include( "header.txt" )
<br/>
Count down.
#set( $count = 8 )
#parse( "child.tmp" )
All done with child.tmp!


<br/>

 
#foreach( $foo in [13..-6] )
     #if( $foo < 10 )
        <strong>Go North</strong>
    #elseif( $foo == 10 )
        <strong>Go East</strong>
    #elseif( $bar == 6 )
        <strong>Go South</strong>
    #else
        <strong>Go West</strong>
    #end   
#end
<br/>

$Model.Name
$Model.Age
$Model.Body.Height

#set($List = ["man","woman","middle","none"]) 
  <p> ForEach </p>
#foreach($Item in $List)     
    #odd
     <p>$velocityCount odd $Item</p>
     #even 
     <p>$velocityCount even $Item</p>
#end

 

#macro( tablerows $color $somelist )
    #foreach( $something in $somelist )
        <tr><td bgcolor=$color>$something</td></tr>
    #end
#end


#set( $parts = ["volva","stipe","annulus","gills","pileus"] )
#set( $cellbgcol = "#CC00FF" )
<table>
   #tablerows( $cellbgcol $parts )
</table>

$from

<br/>
 #set( $size = "Big" )
 #set( $name = "Ben" )

#set($clock = "${size}Tall$name" )
$clock

Stop
#stop
$to

 

posted on 2014-06-27 14:00  极简  阅读(370)  评论(0编辑  收藏  举报