zoukankan      html  css  js  c++  java
  • 解决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());

    }

    }

    }

               

  • 相关阅读:
    推荐一个博客,或许给技术流的自己一些启示
    Boost多线程-替换MFC线程
    Python:Matplotlib 画曲线和柱状图(Code)
    AI:机器人与关键技术--总是被科普
    OnLineML一:关于Jubatus 的简介...
    使用PCL::GPU::遇到问题
    dll文件:关于MFC程序不能定位输入点
    实践:使用FLANN.LSH进行检索
    模式识别两种方法:知识和数据
    几个方便编程的C++特性
  • 原文地址:https://www.cnblogs.com/aaa6818162/p/1453172.html
Copyright © 2011-2022 走看看