NVelocity中调用方法 一定要通过 类.方法

本文介绍了一个使用C#与VelocityEngine结合的例子,演示了如何创建用户信息列表,并通过模板引擎渲染这些数据到HTML页面的过程。文章包含了初始化VelocityEngine、设置模板路径、填充数据上下文以及渲染HTML输出的具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 protected void Page_Load(object sender, EventArgs e)
    {
        IList
<UserInfo> listUsers = new List<UserInfo>();

        UserInfo objUser 
= new UserInfo();
        objUser.Name 
= "TestUser1";
        objUser.Sex 
= "M";
        objUser.City 
= "ShenZhen";
        listUsers.Add(objUser);

        objUser 
= new UserInfo();
        objUser.Name 
= "TestUser2";
        objUser.Sex 
= "F";
        objUser.City 
= "BeiJing";
        listUsers.Add(objUser);

        objUser 
= new UserInfo();
        objUser.Name 
= "TestUser3";
        objUser.Sex 
= "M";
        objUser.City 
= "USA";
        listUsers.Add(objUser);


        VelocityEngine engine 
= new VelocityEngine();
        ExtendedProperties props 
= new ExtendedProperties();
        props.AddProperty(
"file.resource.loader.path", Server.MapPath("."));
        engine.Init(props);
        Template template 
= engine.GetTemplate("HTMLPage2.htm");


        VelocityContext context 
= new VelocityContext();
        context.Put(
"name""VelocityEngine测试</br>");//修改模版页中的
        context.Put("listUsers", listUsers);

        tool tool 
= new tool();//新类
        context.Put("nono", tool);
       
        System.Text.StringBuilder builder 
= new System.Text.StringBuilder();
        builder.Append(
"#foreach($u in $listUsers)\r\n" +
            
"#beforeall\r\n" +
            
"<table border=\"0\" cellpadding=\"10\" cellspacing=\"10\">" +
            
"<tr><td>Name</td><td>Sex</td><td>City</td></tr>" +
            
"#each\r\n" +
            
"<tr>" +
            
"<td>$nono.method($u.Name)</td>" +
            
"<td>$u.Sex</td>" +
            
"<td>$u.City</td>" +
            
"</tr>" +
            
"#afterall\r\n" +
            
"</table>" +
            
"#nodata\r\n" +
            
"暂无用户资料\r\n" +
            
"#end");


        System.IO.StringWriter vltWriter 
= new System.IO.StringWriter();
        template.Merge(context, vltWriter);
        engine.Evaluate(context, vltWriter, 
null, builder.ToString());


       
// System.IO.StringWriter vltWriter = new System.IO.StringWriter();


        Response.Write(vltWriter.GetStringBuilder().ToString());

    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值