• 解决NVelocity加载模板时出现Unable to find resource"xxx"错误


    NVelocity现在属于Castle项目,相关介绍:http://www.castleproject.org/others/nvelocity/index.html

    使用方法:http://www.castleproject.org/others/nvelocity/usingit.html

    发现很多人在按上面的方法使用时会出现Unable to find resource"xxx"错误

    解决办法:

    在engine.Init(props);之前使用

    props.AddProperty("file.resource.loader.path", Server.MapPath("."));

    第2个参数Server.MapPath(".")指当前模板文件所在的目录,如果你的模板文件完整路径是:c:\xx\xx.vm

    则应该把Server.MapPath(".")替换成c:\xx

    例子代码:

    myfirsttemplate.vm和NVelocityDemo.aspx在同一个目录下

    1.myfirsttemplate.vm文件:

    From: $from
    To: $to
    Subject: $subject

    Hello, $customer

    2.NVelocityDemo.aspx.cs代码:

    using Commons.Collections;
    using NVelocity;
    using NVelocity.App;
    using NVelocity.Context;
    using System.IO;
    using System.Text;
    namespace webTest
    {
        public partial class NVelocityDemo : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                VelocityEngine engine = new VelocityEngine();
                ExtendedProperties props = new ExtendedProperties();
                //Server.MapPath(".")
                props.AddProperty("file.resource.loader.path", Server.MapPath("."));

                engine.Init(props);

                Template template = engine.GetTemplate("myfirsttemplate.vm");

                VelocityContext context = new VelocityContext();
                context.Put("from", "somewhere");
                context.Put("to", "someone");
                context.Put("subject", "Welcome to NVelocity");
                context.Put("customer", "jon zhao");

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

    }

    }

    }

               

  • 相关阅读:
    dig批量获取域名对应IP
    文件和目录
    Linux程序设计的CD唱片应用程序
    LinuxRedhat7.0虚拟机配置双网卡
    Redhat7.0计划任务服务程序(at,crontab)
    RedHat7 修改主机名称 配置网卡信息 配置Yum软件仓库
    关于RedHat5.0不能提示找不到/media/cdrom/repodate/repomd.xml
    Redhat5静态IP分配,提示Error, some other host already uses address解决办法
    三种时间戳的解释
    RHEL 7 -解决“没有启用回购”消息
  • 原文地址:https://www.cnblogs.com/aaa6818162/p/1453172.html
Copyright © 2020-2023  润新知