Nvelocity对象索引和#foreach举例

首先写一个login.ashx的一般处理程序,引用Nvelocity动态类库,在写一个数组一个list集合和一个字典集合.

放入到参数中,并且指定模版的网页。

public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/html";
            Dictionary<string, string> dict = new Dictionary<string, string>();
            dict["tom"] = "斯坦福";
            dict ["jim"]="家里蹲";
            dict["yxk"] = "北大";

            string[] strs = new string[] { "路id恶化","万恶","山鸡"};
            List<Person> list = new List<Person>();
            list.Add(new Person { Age =30,Name ="杨中科"});
            list.Add(new Person { Age =10,Name ="扬中"});
            list.Add(new Person { Age =12,Name ="杨"});

            VelocityEngine vltEngine = new VelocityEngine();//实例化一个velocity模版引擎
            vltEngine.SetProperty(RuntimeConstants.RESOURCE_LOADER, "file");
            vltEngine.SetProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, System.Web.Hosting.HostingEnvironment.MapPath("~/templates"));//模板文件所在的文件夹
            vltEngine.Init();

            VelocityContext vltContext = new VelocityContext();
            vltContext.Put("ps",dict );//设置参数,在模板中可以通过$data来引用
            //把person对象作为传入p
            vltContext.Put("mingrens",strs );
            vltContext.Put("persons",list );

            Template vltTemplate = vltEngine.GetTemplate("test3.htm");
            System.IO.StringWriter vltWriter = new System.IO.StringWriter();
            vltTemplate.Merge(vltContext, vltWriter);

            string html = vltWriter.GetStringBuilder().ToString();//得到html这个模板
            context.Response.Write(html);

        }

写一个模板网页,在一个无序的列表中,#标记是nvelocity语法。

<body>
    1:
    <!-- $ps.tom<br />-->
    <ul>
        #foreach($mr in $mingrens)
        <li>$mr</li>
        #end
    </ul>

    <ul>
    #foreach($p in $persons)
    <li>$p.Name,$p.Age</li>
    #end
    </ul>
</body>
</html>
时间: 2024-10-27 12:21:24

Nvelocity对象索引和#foreach举例的相关文章

聚集索引与非聚集索引的用法举例与使用注意

聚集索引 用法举例 小明需要查找一个人的姓名,知道他在公司的营销部门的1010办公室的4号座位.这个时候如果需要专门为小明建一个聚集索引表就是,以公司部门表内部门名称排序,再以房间总表序号排序,最后以房间详细表的座位表排序,这样就可以最快的找到他要找的人 聚集索引类似于一个字典,我们知道拼音来寻找字,首先我们知道字音节的首字母,从按a-z排序的字典中找到这个字首字母所在的区域,再从这个区域找到韵母所在的区域,当然韵母在字典中也有顺序,最后就可以找到我们想要的字了 注意事项 限制原则 每个表只能有

sqlite3语句对象的生命周期--举例说明

 语句对象的生命周期:  1.使用sqlite3_prepare_v2或相关的函数创建这个对象  2.使用sqlite3_bind_*()给宿主参数绑定值  3.通过调用sqlite3_step一次或多次来执行这个sql  4.使用sqlite3_reset()重置这个语句,然后回到第2步,这个过程做0次或多次  5.使用sqlite3_finalize()销毁这个对象 例子: 1 //查询指定商品 2 - (Product *)selectProductById:(int)proId { 3

面向对象与基于对象 学习记录 thread举例

// 1.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> #include <windows.h> using namespace std; class CThread{ public: CThread(); virtual ~CThread(); bool Start(); void Join(); static DWORD WINAPI ThreadProc( LPVOID lp

ValueInjecter----最好用的OOM(以微信消息转对象举例)

使用数据实体的好处我这里就不多说了,但大家享受这些好处的时候,难免也对那些琐碎的赋值代码感到厌烦,基于此,我认为掌握一个oom的使用,还是很有必要的. 这种类型的工具有很多,比如automapper,EmitMapper,还有和orm混合的dapper等,各有各的特色, 但综合性能,扩展,易用性来说,我觉得ValueInjecter是用的最舒服的.  简单的太简单的场景我就不举例了, 可以看这里 今天玩了玩微信接口开发,写对象转换的时候,再一次感觉到了ValueInjecter的便利,于是有了这

数据库对象——函数、存储过程、索引、同义词

数据库对象--函数 1.函数(function)分为两种,一种是oracle数据库自身的函数,另一种是用户自己写的函数. 2.使用函数把小写字幕变成大写字幕. select upper('a i love you') from dual; 3.创建一个通过员工的ID号获取其薪水的函数 create or replace function get_empsal(emp_no in number) return number is emp_sal number(7,2); begin select

2JSP内置对象

JSP内置对象有:request.response.session.application. out. request与response对象是JSP内置对象中较重要的两个,这两个对象提供了对服务器和浏览器通信方法的控制.使用浏览器从网站获取HTML页面时,实际在使用超文本传送协议(HTTP),HTTP协议规定了信息在Internet上的传输方法,特别是规定了浏览器与服务器的交互方法.从网站获取页面时,浏览器在网站上打开一个对网络服务器的连接,并发出请求.服务器收到请求后回应,所以HTTP协议的核

C#与数据库访问技术总结(十六)之 DataSet对象

DataSet对象 DataSet对象可以用来存储从数据库查询到的数据结果,由于它在获得数据或更新数据后立即与数据库断开,所以程序员能用此高效地访问和操作数据库. 并且,由于DataSet对象具有离线访问数据库的特性,所以它更能用来接收海量的数据信息. DataSet对象概述 DataSet是ADO.NET中用来访问数据库的对象. 由于其在访问数据库前不知道数据库里表的结构,所以在其内部,用动态XML的格式来存放数据.这种设计使DataSet能访问不同数据源的数据. DataSet对象本身不同数

forEach、for+i、map的用法及区别

  array.forEach(callback[, thisObject]); 下面是参数的详细信息: 1. callback : 函数测试数组的每个元素. 2.thisObject : 对象作为该执行回调时使用. forEach是ECMA5中Array新方法中最基本的一个,就是遍历,循环. Array在ES5新增的方法中,参数都是function类型,默认有传参,forEach方法中的function回调支持3个参数,第1个是遍历的数组内容:第2个是对应的数组索引,第3个是数组本身. [].

ASP.NET内置对象二

(1)Respose对象 利用Response对象输出文字信息: protected void Page_Load(object sender, EventArgs e){ string message = "您好,欢迎光临本网站!"; Response.Write(message); } 利用Response对象实现网页跳转: protected void Page_Load(object sender, EventArgs e) { Response.Redirect("