NVelocity 实例

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

NVelocity 实例,布布扣,bubuko.com

时间: 2024-10-03 21:53:17

NVelocity 实例的相关文章

Nvelocity模板引擎

A.nVelocity是一个基于.NET的模板引擎(template engine).它允许任何人仅仅简单的使用模板语言(template language)来引用由.NET代码定义的对象.页面设计人员可以只关注页面的显示效果,而由.NET程序开发人员关注业务逻辑编码. B.模板引擎处理流程:编写模板->处理数据->渲染HTML. C.Nvelocity下载地址:http://www.castleproject.org/download/ D.一个简单的示例: 新建一个Application,

C#模板引擎NVelocity实战项目演练

一.背景需求 很多人在做邮件模板.短信模板的时候,都是使用特殊标识的字符串进行占位,然后在后台代码中进行Replace字符串,如果遇到表格形式的内容,则需要在后台进行遍历数据集合,进行字符串的拼接,继而Replace模板中的占位符 !今天给大家分享一个WinForm方面的模板引擎的小技巧和小技能吧,本次课程阿笨给大家分享关于WinForm开发中如何通过模板引擎NVelocity根据动态数据生成漂亮的订单详细查看页面? 1.1.本次分享课程包含知识点如下: 1).WinForm中WebBrowse

数据字典生成工具之旅(6):NVelocity语法介绍及实例

本章开始将会为大家讲解NVelocity的用法,并带领大家实现一个简单的代码生成器. NVelocity是一个基于.NET的模板引擎(template engine).它允许任何人仅仅简单的使用模板语言(template language)来引用由.NET代码定义的对象.从而使得界面设计人员与.NET程序开发人员基本分离. 阅读目录 NVelocity的常用功能简介 基本语法 实例介绍 工具源代码下载 学习使用 回到顶部 NVelocity的常用功能简介 1. 在页面中定义变量,并进行简单的运算

NVelocity 实现简单的留言板

留言版简单实现 ----------------------------------------------------------------------------------------------------------------------------------- 项目截图: 1,新建留言板数据库:LiuYanbanDB USE [LiuYanbanDB] GO /****** Object: Table [dbo].[LiuYan] Script Date: 2015/5/15

不拖控件ASP.NET——NVelocity(1)

    模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档.今天我们主要来介绍NVelocity模板引擎 1. NVelocity基础 ?  定义     NVelocity是一个基于.NET的模板引擎(template engine).它允许任何人仅仅简单的使用模板语言(template language)来引用由.NET代码定义的对象.从而使得界面设计人员与.NET程序开发人员

NVelocity学习笔记一——linq2sql+NVelocity完整demo

(一)前言      刚刚进入新公司,看公司的项目,发现开发流程几乎和以前的完全不同,再看看页面布局竟然没有发现html.神马情况????一番探究发现使用了NVelocity模板引擎开发的.于是乎花了半天的时间比划着公司的项目做了一个小demo,也算是熟悉一下这种开发方式吧,同时也给将要学习这方面东西的朋友留个小教程. (二)实战      说明:因为公司项目数据库操作使用的是linq2sql,所以我也就拿这个操作数据库了(汗,其实我也没用过linq2SQL,都是EF,其实都差不多). 第一步:

Asp.net动态页面静态化之初始NVelocity模板引擎

Asp.net动态页面静态化之初始NVelocity模板引擎 静态页面是网页的代码都在页面中,不须要运行asp,php,jsp,.net等程序生成client网页代码的网页,静态页面网址中一般不含"?"."="."&"等特殊符号. 静态页面不能自主管理公布更新的页面,假设想更新网页内容,要通过FTP软件把文件DOWN下来用网页制作软件改动(通过fso等技术例外) 常见的静态页面举例:.html扩展名的..htm扩展名的. 注意:静态页面并

强大的模板引擎开源软件NVelocity

背景知识NVelocity(http://sourceforge.net/projects/nvelocity )是从java编写的Velocity移植的.net版本,是java界超强的模版系统,.net版本的NVelocity目前版本为0.42.NVelocity拥有完善的.丰富的模板语言(VTL,Velocity Template Language) ,几乎所有高级语言的特性都可以在模板引擎语言中找到.(如流程控制语句.数学运算.关系和逻辑操作符.函数定义.注释等等) NVelocity可以

NVelocity

迭代内置对象:  velocityCount 集合数   :  count NVelocity遇到不能处理的引用时,一般会直接输出标签名称. 在$符号后加个!号,出现Null时,标签的内容就会显示空白. 如:$title   改写成:$!{title} /// <summary>    /// 黎巧    /// 2012-04-25    ///  NVelocity模板工具类 VelocityHelper    /// </summary>    public class NV