aspx NVelocity 模板使用

1.新建webform项目

2.引用NVelocity.dll

3.添加UserInfo.aspx,并删除其中的代码,只留第一句话

4.添加实体类

public class UserInfoEntity
{
    public int UserId { get; set; }
    public string UserName { get; set; }

}

  

5.在UserInfo.aspx.cs的load中写

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Commons.Collections;
using NVelocity;
using NVelocity.App;
using NVelocity.Context;
using NVelocity.Runtime;

public partial class UserInfo : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        List<UserInfoEntity> list = new List<UserInfoEntity>();
        list.Add(new UserInfoEntity() { UserId = 1, UserName = "chm1" });
        list.Add(new UserInfoEntity() { UserId = 2, UserName = "chm2" });
        //1.创建VelocityEngine实例对象
        VelocityEngine engine = new VelocityEngine();

        //2.读取模板路径,可以定义几套模板利于动态换肤
        string path = Server.MapPath(@"Template\UserInfo.vm");

        string tmpPath = path.Substring(0, path.LastIndexOf(@"\"));
        string filePath = path.Substring(path.LastIndexOf(@"\") + 1);

        //3.使用设置初始化VelocityEngine
        ExtendedProperties props = new ExtendedProperties();
        props.AddProperty(RuntimeConstants.RESOURCE_LOADER, "file");
        props.AddProperty(RuntimeConstants.INPUT_ENCODING, "utf-8");
        props.AddProperty(RuntimeConstants.OUTPUT_ENCODING, "utf-8");
        props.AddProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, tmpPath);
        engine.Init(props);

        //4.模板引擎从文件中读取模板
        Template tmp = engine.GetTemplate(filePath);
        //Template tmp = engine.GetTemplate(@"UserInfo.html");

        //5.为模板变量赋值
        IContext context = new VelocityContext();
        context.Put("Title", "测试");
        context.Put("listUserInfo", list);

        //6.合并模板和流写出器
        StringWriter write = new StringWriter();
        tmp.Merge(context, write);
        Response.Write(write.ToString());
    }
}

6.在项目下新建文件夹(Template)

7.在Template下新建UserInfo.html页面 

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 <title>$Title</title>
</head>

<body>
    <table>
        #foreach($item in $listUserInfo)
        <tr><td>$item.UserId</td><td>$item.UserName</td></tr>
        #end
    </table>
</body>
</html>

8.把UserInfo.html的后缀改成vm

时间: 2024-08-12 15:26:33

aspx NVelocity 模板使用的相关文章

只需一句话就能搞定NVelocity模板引擎,源码+解析+文档+资料+注释

好长时间不发技术方面的动态了,今天无聊就发篇关于NVelocity的技术文章吧,这门技术来源于java开源项目Velocity,比较好用,其他的我也不过多介绍了,没听过的在文章末尾会有介绍,下面我们就实战吧~ 咱们直接上最简单的方法,一句话搞定: DNTNvelocityHelper.NvelocityTemplate(context.Request.MapPath("~/NVelocity/templates/"), context, "Templater_index.dn

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

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

WebPart中使用Nvelocity模板引擎来进行呈现

WebPart中使用Nvelocity模板引擎来进行呈现 分类: SharePoint2011-06-15 08:29 1479人阅读 评论(1) 收藏 举报 模板引擎encodingsharepointxml测试css NVelocity是一套强大的模板引擎,在我之前的随笔中,有过使用它来呈现页面及生成静态页的例子.通过使用它,我们可以达到界面与数据的完成分离(当然需要一些设计手段来支持).我在公司里的工作主要就是在office sharepoint2007的基础上进行一些类型信息系统的门户站

Nvelocity模板引擎

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

.Net 使用NVelocity模板

1.NVelocity是什么? 答:NVelocity是一个基于.NET的模板引擎(template engine).它允许任何人仅仅简单的使用模板语言(template language)来引用由.NET代码定义的对象. 2.NVelocity有什么作用(有什么裨益)? 答:当NVelocity 应用于Web开发时,界面设计人员和.NET程序开发人员同步开发一个遵守MVC架构的Web站点,也就是说页面设计人员可以只关注页面的显示效果,而 由.NET 开发人员关注业务逻辑编码.NVelocity

NVelocity模板引擎在项目中的应用

NVelocity是一个基于.NET的模板引擎(template engine).它允许任何人仅仅简单的使用模板语言(template language)来引用由.NET代码定义的对象.至于其他的一些别的NVelocity的的解释.和一些用法这里就不在提及. 具体的使用方法: 1,定义Velocity辅助类(VelocityHelper.cs) 提供下载  当然,这个辅助类需要添加NVelocity.dll的引用. 2,aspx页面和Template的结构说明 这个其实是需要根据个人喜好来定!为

使用模板引擎(Nvelocity)写代码生成器

之前做了一个项目,由于数据库表比较多,每次都手写model,还有数据库操作之类的东西,感觉浪费时间,也没技术含量,还容易出错,最主要的原因还是懒,不想翻来覆去的写这种代码,于是想到要用代码生成器直接生成,在网上找到很多,但是生成的代码要么看着不安逸,毕竟每个人的风格不同,要么就是生成很多自己根本不需要的垃圾代码,正好最近闲来无事,决定自己动手写一个. 一开始我是想到使用stringbuilder拼接字符串来实现,但是字符串拼接起来相当麻烦,代码量也很多,看起乱糟糟的很不舒服,还有就是得注意格式,

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

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

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

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