public void ProcessRequest(HttpContext context) { DataBooks book=new DataBooks(); book.name = context.Request["bookname"]; book.type = context.Request["booktype"]; if(book.name!=null) bookcollector.Add(book); context.Response.ContentType = "text/html"; VelocityEngine vltEngine = new VelocityEngine(); 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("msg", ""); vltContext.Put("bookcollector", bookcollector); vltContext.Put("book", book); Template vltTemplate = vltEngine.GetTemplate("Front/ShopingCar.html");//模版文件所在位置 System.IO.StringWriter vltWriter = new System.IO.StringWriter(); vltTemplate.Merge(vltContext, vltWriter); string html = vltWriter.GetStringBuilder().ToString(); context.Response.Write(html); }
private static string ApplyTemplate(string template, VelocityContext context) { VelocityEngine velocity = new VelocityEngine(); ExtendedProperties props = new ExtendedProperties(); velocity.Init(props); using (var writer = new StringWriter(CultureInfo.CurrentCulture)) { velocity.Evaluate(context, writer, string.Empty, template); return writer.GetStringBuilder().ToString(); } }
/// <summary> /// Merge the specified Velocity template with the given model and write /// the result to the given Writer. /// </summary> /// <param name="velocityEngine">VelocityEngine to work with</param> /// <param name="templateLocation">the location of template, relative to Velocity's resource loader path</param> /// <param name="encoding">encoding the encoding of the template file</param> /// <param name="model">the Hashtable that contains model names as keys and model objects</param> /// <param name="writer">writer the TextWriter to write the result to</param> /// <exception cref="VelocityException">thrown if any exception is thrown by the velocity engine</exception> public static void MergeTemplate( VelocityEngine velocityEngine, string templateLocation, string encoding, Hashtable model, TextWriter writer) { try { VelocityContext velocityContext = new VelocityContext(model); velocityEngine.MergeTemplate(templateLocation, encoding, velocityContext, writer); } catch (VelocityException) { throw; } catch (Exception ex) { throw new VelocityException(ex.ToString(), ex); } }
public static string FormatText(string templateText, IDictionary<string,object> values) { var nvelocityContext = new VelocityContext(); foreach (var tagValue in values) nvelocityContext.Put(tagValue.Key, tagValue.Value); return FormatText(templateText, nvelocityContext); }
public static string RenderView(this HtmlHelper html, string viewName, string sectionName, IDictionary parameters) { if (!string.IsNullOrEmpty(sectionName)) { viewName += ":" + sectionName; } var velocityView = html.ViewContext.View as NVelocityView; if (velocityView == null) throw new InvalidOperationException("The RenderView extension can only be used from views that were created using NVelocity."); var newContext = velocityView.Context; if (parameters != null && parameters.Keys.Count > 0) { // Clone the existing context and then add the custom parameters newContext = new VelocityContext(); foreach (var key in velocityView.Context.Keys) { newContext.Put((string)key, velocityView.Context.Get((string)key)); } foreach (var key in parameters.Keys) { newContext.Put((string)key, parameters[key]); } } // Resolve the template and render it. The partial resource loader takes care of validating // the view name and extracting the partials. var template = velocityView.Engine.GetTemplate(viewName); using (var writer = new StringWriter()) { template.Merge(newContext, writer); return writer.ToString(); } }
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/html"; string username = context.Request.Form["username"]; string password = context.Request.Form["password"]; if (string.IsNullOrEmpty(username) && string.IsNullOrEmpty(password)) { VelocityEngine vltEngine = new VelocityEngine(); 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("p", person);//设置参数,在模板中可以通过$data来引用 vltContext.Put("username", ""); vltContext.Put("password", ""); vltContext.Put("msg", ""); Template vltTemplate = vltEngine.GetTemplate("Front/login.html");//模版文件所在位置 System.IO.StringWriter vltWriter = new System.IO.StringWriter(); vltTemplate.Merge(vltContext, vltWriter); string html = vltWriter.GetStringBuilder().ToString(); context.Response.Write(html); } else { if (dataaccess(username, password)) { context.Session["username"] = username; context.Response.Redirect("Index.ashx"); } else { VelocityEngine vltEngine = new VelocityEngine(); 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("p", person);//设置参数,在模板中可以通过$data来引用 vltContext.Put("username", username); vltContext.Put("password", password); vltContext.Put("msg", "用户名密码错误"); Template vltTemplate = vltEngine.GetTemplate("Front/login.html");//模版文件所在位置 System.IO.StringWriter vltWriter = new System.IO.StringWriter(); vltTemplate.Merge(vltContext, vltWriter); string html = vltWriter.GetStringBuilder().ToString(); context.Response.Write(html); } } }
/// <summary> /// This test uses the previously created velocity engine /// </summary> public void ExecuteMethodUntilSignal2() { startEvent.WaitOne(int.MaxValue, false); while(!stopEvent.WaitOne(0, false)) { StringWriter sw = new StringWriter(); VelocityContext c = new VelocityContext(); c.Put("x", new Something()); c.Put("items", items); bool ok = velocityEngine.Evaluate(c, sw, "ContextTest.CaseInsensitive", @" #foreach($item in $items) $item, #end $x.Print('hey') $x.Contents('test', '1') "); Assert.IsTrue(ok, "Evaluation returned failure"); Assert.AreEqual("a,b,c,d,heytest,1", Normalize(sw)); } }
/// <summary> /// Initializes a new instance of the <see cref="NVelocityView"/> class. /// </summary> /// <param name="template">The template.</param> /// <param name="viewData">The view data.</param> /// <param name="engine">The engine.</param> public NVelocityView(Template template, ViewDataDictionary viewData, VelocityEngine engine) { _context = new VelocityContext(); _template = template; _engine = engine; ViewData = viewData; }
public string RenderTemplate(string masterPage, string templateName, IDictionary<string, object> data) { if (string.IsNullOrEmpty(templateName)) { throw new ArgumentException("The \"templateName\" parameter must be specified", "templateName"); } var name = !string.IsNullOrEmpty(masterPage) ? masterPage : templateName; var engine = new VelocityEngine(); var props = new ExtendedProperties(); props.AddProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, _templatesPath); engine.Init(props); var template = engine.GetTemplate(name); template.Encoding = Encoding.UTF8.BodyName; var context = new VelocityContext(); var templateData = data ?? new Dictionary<string, object>(); foreach (var key in templateData.Keys) { context.Put(key, templateData[key]); } if (!string.IsNullOrEmpty(masterPage)) { context.Put("childContent", templateName); } using (var writer = new StringWriter()) { engine.MergeTemplate(name, context, writer); return writer.GetStringBuilder().ToString(); } }
protected virtual string GetGenericTemplateText(string templateFileName, Hashtable data) { string fullTemplateFileName = TemplatePath + templateFileName; //Check file if (!IsValidTemplate(fullTemplateFileName)) { return null; } InitialiseNVelocity(templateFileName); VelocityContext context = new VelocityContext(); foreach (object key in data.Keys) { AddData(key.ToString(), data[key], context); } //Standard things used in email AddStandardItems(context); StringWriter writer = new StringWriter(); Template template = null; try { template = Velocity.GetTemplate(templateFileName); template.Merge(context, writer); return writer.ToString(); } catch (Exception e) { LogManager.GetLogger(GetType()).Error(e); } return null; }
public static void CreateCode(string filepath, string outputpath, VelocityContext context) { StreamWriter writer=null; try { VelocityEngine engine = null;//new VelocityEngine(); ExtendedProperties extendedProperties = new ExtendedProperties(); //extendedProperties.SetProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, filepath.Substring(0, filepath.LastIndexOf("\\"))); engine.Init(extendedProperties); //Template template = engine.GetTemplate(filepath.Substring(filepath.LastIndexOf("\\")+1)); //FileStream fos = new FileStream(outputpath + "\\1.vm", FileMode.Create); //writer = new StreamWriter(fos); //template.Merge(context, writer); //writer.Flush(); //writer.Close(); StringWriter output=new StringWriter(); engine.Evaluate(context, output, "", filepath); } catch (Exception ex) { throw ex; } finally { if (writer != null) { writer.Close(); } } }
public string ProcessTemplate(string templateValue, Hashtable context) { VelocityContext vContext = new VelocityContext(context); //foreach(string key in context.Keys) // vContext.Put(key, context[key]); string result = null; if (!string.IsNullOrEmpty(templateValue)) { System.IO.StringWriter writer = new System.IO.StringWriter(); try { if (Velocity.Evaluate(vContext, writer, "", templateValue)) result = writer.ToString(); } catch (ParseErrorException pe) { return pe.Message; } catch (MethodInvocationException mi) { return mi.Message; } } return result; }
/// <summary>The format.</summary> /// <param name="text">The text.</param> /// <param name="items">The items.</param> /// <returns>The format.</returns> /// <exception cref="TemplateException"></exception> public string Format(string text, Dictionary<string, object> items) { try { VelocityContext velocityContext = new VelocityContext(); if (items != null) { foreach (var pair in items) { velocityContext.Put(pair.Key, pair.Value); } } StringWriter sw = new StringWriter(); VelocityEngine velocityEngine = new VelocityEngine(); velocityEngine.Init(); bool ok = velocityEngine.Evaluate(velocityContext, sw, "ContextTest.CaseInsensitive", text); if (!ok) { throw new TemplateException("Template run error (try adding an extra newline at the end of the file)"); } return sw.ToString(); } catch (ParseErrorException parseErrorException) { throw new TemplateException(parseErrorException.Message, parseErrorException); } }
/// <summary> /// 用data数据填充templateName模板,渲染生成html返回 /// </summary> /// <param name="templateName"></param> /// <param name="data"></param> /// <returns></returns> public static string RenderHtml(string templateName, object data) { //第一步:Creating a VelocityEngine也就是创建一个VelocityEngine的实例 VelocityEngine vltEngine = new VelocityEngine(); //也可以使用带参构造函数直接实例 vltEngine.SetProperty(RuntimeConstants.RESOURCE_LOADER, "file"); vltEngine.SetProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, System.Web.Hosting.HostingEnvironment.MapPath("~/templates"));//模板文件所在的文件夹 vltEngine.Init(); //vltEngine.AddProperty(RuntimeConstants.INPUT_ENCODING, "gb2312"); //vltEngine.AddProperty(RuntimeConstants.OUTPUT_ENCODING, "gb2312"); //第二步:Creating the Template加载模板文件 //这时通过的是Template类,并使用VelocityEngine的GetTemplate方法加载模板 Template vltTemplate = vltEngine.GetTemplate(templateName); //第三步:Merging the template整合模板 VelocityContext vltContext = new VelocityContext(); vltContext.Put("Data", data);//设置参数,在模板中可以通过$data来引用 //第四步:创建一个IO流来输出模板内容推荐使用StringWriter(因为template中以string形式存放) System.IO.StringWriter vltWriter = new System.IO.StringWriter(); vltTemplate.Merge(vltContext, vltWriter); string html = vltWriter.GetStringBuilder().ToString(); return html; }
/// <exception cref="ArgumentException"></exception> string BuildEmail(string templateName, IDictionary<string, object> viewdata) { if (viewdata == null) { throw new ArgumentNullException("viewData"); } if (string.IsNullOrEmpty(templateName)) { throw new ArgumentException("TemplateName"); } var template = ResolveTemplate(templateName); var context = new VelocityContext(); foreach (var key in viewdata.Keys) { context.Put(key, viewdata[key]); } using (var writer = new StringWriter()) { template.Merge(context, writer); return writer.ToString(); } }
public static string Format(HttpContext context, string pattern, VelocityContext velocitycontext) { using (var writer = new StringWriter()) { try { if (!_isInitialized) { var props = new ExtendedProperties(); props.AddProperty("file.resource.loader.path", new ArrayList(new[] { ".", Path.Combine( context.Server.MapPath(feed.HandlerBasePath), "Patterns") })); Velocity.Init(props); _isInitialized = true; } //Load patterns var template = Patterns.Get(pattern, () => LoadTemplate(pattern)); template.Merge(velocitycontext, writer); return writer.GetStringBuilder().ToString(); } catch (Exception) { //Format failed some way return writer.GetStringBuilder().ToString(); } } }
public void RenderTemplate(string templateName, object model) { string templateFullPath = applicationInfo.AbsolutizePath("Web/Pages/Templates/" + templateName + ".vm.html"); ITemplateSource template = new CacheableFileTemplate( templateFullPath, fileCache); string templateText = template.GetTemplate(); VelocityEngine velocity = new VelocityEngine(); velocity.Init(); VelocityContext velocityContext = new VelocityContext(); velocityContext.Put("m", model); velocityContext.Put("h", this); using (StringWriter stringWriter = new StringWriter(CultureInfo.InvariantCulture)) { if (false == velocity.Evaluate(velocityContext, stringWriter, null, templateText)) throw new InvalidOperationException("Template expansion failed"); writer.InnerWriter.Write(stringWriter.ToString()); } writer.WriteLine(); }
/// <summary> /// Constructor. /// </summary> /// <param name="velocityEngine">The velocity engine</param> /// <param name="velocityContext">The current velocity context.</param> /// <param name="reportWriter">The report writer</param> /// <param name="templatePath">The template path.</param> /// <param name="contentType">The content type of the report.</param> /// <param name="extension">The extension of the report file.</param> /// <param name="helper">The formatting helper class.</param> /// <param name="pageSize">The number of test steps displayed in one page.</param> public MultipleFilesVtlReportWriter(VelocityEngine velocityEngine, VelocityContext velocityContext, IReportWriter reportWriter, string templatePath, string contentType, string extension, FormatHelper helper, int pageSize) : base(velocityEngine, velocityContext, reportWriter, templatePath, contentType, extension, helper) { if (pageSize <= 0) throw new ArgumentOutOfRangeException("size", "Must be greater than zero."); this.pageSize = pageSize; }
static IContext CreateNVelocityContext(IDictionary<string, object> items) { IDictionary internalDictionary = new Hashtable(); foreach (var key in items.Keys) internalDictionary.Add(key, items[key]); var context = new VelocityContext(new Hashtable(internalDictionary)); return context; }
/// <summary> /// The parse. /// </summary> /// <param name="template"> /// The template. /// </param> /// <param name="model"> /// The model. /// </param> /// <returns> /// The System.String. /// </returns> public string Parse(string template, dynamic model) { var ctx = new VelocityContext(); ctx.Put("Model", model); var writer = new StringWriter(); VelocityEngine.Evaluate(ctx, writer, null, template); return writer.GetStringBuilder().ToString(); }
public String GetTemplatedDocument(String templateName, IDictionary<String, String> data) { Template template = _engine.GetTemplate(templateName); VelocityContext context = new VelocityContext(); data.Keys.ToList().ForEach(k => context.Put(k, data[k])); StringWriter writer = new StringWriter(); template.Merge(context, writer); return writer.ToString(); }
private static VelocityContext GetContextFromDictionary(Dictionary<string, object> param) { VelocityContext context = new VelocityContext(); foreach (KeyValuePair<string, object> pair in param) { context.Put(pair.Key, pair.Value); } return context; }
public string TransformTemplate(IDictionary<string,object> templateData, string template) { if (templateData == null) throw new ArgumentNullException("templateData"); var context = new VelocityContext(); foreach(var dataItem in templateData) context.Put(dataItem.Key, dataItem.Value); return ApplyTemplate(template, context); }
private VelocityContext GetContext(Dictionary<string, object> data) { var context = new VelocityContext(); foreach (KeyValuePair<string, object> pair in data) { context.Put(pair.Key, pair.Value); } return context; }
public static string AsNVelocityTemplate(this Dictionary<string, object> inputs, TemplateEnum template) { var context = new VelocityContext(); foreach (var input in inputs) { context.Put(input.Key, input.Value); } return NVelocityConfig.MergeTemplate(context, template); }
public static string Fill(this string s, object param) { var context = new VelocityContext(); foreach (var prop in param.GetType().GetProperties()) context.Put(prop.Name, prop.GetValue(param, null)); using (var tw = new StringWriter()) { engine.Evaluate(context, tw, "", s); return tw.ToString(); } }
private static IContext GetContext(IEnumerable<KeyValuePair<string, object>> data) { var context = new VelocityContext(); foreach (var d in data) { context.Put(d.Key, d.Value); } return context; }
protected override void BeforeFormat(INoticeMessage message, ITagValue[] tagsValues) { _nvelocityContext = new VelocityContext(); _nvelocityContext.AttachEventCartridge(new EventCartridge()); _nvelocityContext.EventCartridge.ReferenceInsertion += EventCartridgeReferenceInsertion; foreach (var tagValue in tagsValues) { _nvelocityContext.Put(tagValue.Tag, tagValue.Value); } base.BeforeFormat(message, tagsValues); }
private IContext CreateVelocityContext(object model) { var velocityContext = new VelocityContext(); if (model != null) velocityContext.Put("model", model); velocityContext.Put("vel", this); velocityContext.Put("html", new HtmlHelper()); return velocityContext; }
public static string TemplateMerge(string name, Hashtable table) { template = engine.GetTemplate(filePath+name); VelocityContext content = new VelocityContext(); foreach (DictionaryEntry entry in table) { content.Put(entry.Key.ToString(), entry.Value); } StringWriter writer = new StringWriter(); template.Merge(content, writer); return writer.GetStringBuilder().ToString(); }
public static void Main(System.String[] args) { // first, we init the runtime engine. Defaults are fine. try { Velocity.Init(); } catch (System.Exception e) { System.Console.Out.WriteLine("Problem initializing Velocity : " + e); return; } // lets make a Context and put data into it VelocityContext context = new VelocityContext(); context.Put("name", "Velocity"); context.Put("project", "Jakarta"); // lets render a template StringWriter writer = new StringWriter(); try { Velocity.MergeTemplate("example2.vm", context, writer); } catch (System.Exception e) { System.Console.Out.WriteLine("Problem merging template : " + e); } System.Console.Out.WriteLine(" template : " + writer.GetStringBuilder().ToString()); // lets dynamically 'create' our template // and use the evaluate() method to render it System.String s = "We are using $project $name to render this."; writer = new StringWriter(); try { Velocity.Evaluate(context, writer, "mystring", s); } catch (ParseErrorException pee) { // thrown if something is wrong with the // syntax of our template string System.Console.Out.WriteLine("ParseErrorException : " + pee); } catch (MethodInvocationException mee) { // thrown if a method of a reference // called by the template // throws an exception. That won't happen here // as we aren't calling any methods in this // example, but we have to catch them anyway System.Console.Out.WriteLine("MethodInvocationException : " + mee); } catch (System.Exception e) { System.Console.Out.WriteLine("Exception : " + e); } System.Console.Out.WriteLine(" string : " + writer.GetStringBuilder().ToString()); }
public Example1(System.String templateFile) { try { /* * setup */ Velocity.Init("nvelocity.properties"); /* * Make a context object and populate with the data. This * is where the Velocity engine gets the data to resolve the * references (ex. $list) in the template */ VelocityContext context = new VelocityContext(); context.Put("list", Names); /* * get the Template object. This is the parsed version of your * template input file. Note that getTemplate() can throw * ResourceNotFoundException : if it doesn't find the template * ParseErrorException : if there is something wrong with the VTL * Exception : if something else goes wrong (this is generally * indicative of as serious problem...) */ Template template = null; try { template = Velocity.GetTemplate(templateFile) ; } catch (ResourceNotFoundException) { System.Console.Out.WriteLine("Example1 : error : cannot find template " + templateFile); } catch (ParseErrorException pee) { System.Console.Out.WriteLine("Example1 : Syntax error in template " + templateFile + ":" + pee); } /* * Now have the template engine process your template using the * data placed into the context. Think of it as a 'merge' * of the template and the data to produce the output stream. */ if (template != null) { template.Merge(context, System.Console.Out); } } catch (System.Exception e) { System.Console.Out.WriteLine(e); } }
public static StringWriter GetFileText(string path, Hashtable ht) { if (String.IsNullOrEmpty(path)) { throw new ArgumentNullException("Argument Excception!"); } try { string tmpPath = path.Substring(0, path.LastIndexOf(@"\")); string filePath = path.Substring(path.LastIndexOf(@"\") + 1); VelocityEngine velocity = new VelocityEngine(); ExtendedProperties props = new ExtendedProperties(); props.AddProperty(RuntimeConstants.RESOURCE_LOADER, "file"); props.AddProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, tmpPath); props.AddProperty(RuntimeConstants.FILE_RESOURCE_LOADER_CACHE, true); props.AddProperty(RuntimeConstants.INPUT_ENCODING, "utf-8"); props.AddProperty(RuntimeConstants.OUTPUT_ENCODING, "utf-8"); velocity.Init(props); Template temp = velocity.GetTemplate(filePath); IContext context = new VelocityContext(); foreach (string key in ht.Keys) { context.Put(key, ht[key]); } StringWriter writer = new StringWriter(); temp.Merge(context, writer); return(writer); } catch (Exception ex) { throw ex; } }
public void BeforeEachTest() { // Reset the context context = new VelocityContext(); }