模版引擎(NVelocity)开发

在net中用模版开发,在handler中用到了大量的html代码。为解决这个问题,我可以采用模版引擎(NVelocity)进行开发。
1、首先需要将NVelocity.dll文件放入项目,其次引用。
2、配置更改,
代码如下:

context.Response.ContentType = "text/html";
            //1.创建Velocity 引擎(VelocityEngine)并设置属性
            VelocityEngine vltEngine = new VelocityEngine();
            vltEngine.SetProperty(RuntimeConstants.RESOURCE_LOADER, "file");
            vltEngine.SetProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, context.Request.MapPath("~/templates"));
            vltEngine.Init();

            // 2.Velocity 上下文对象设置
            VelocityContext vltContext = new VelocityContext();
            vltContext.Put("data", "yhb");

            // 3.创建模板
            Template vltTemplate = vltEngine.GetTemplate("photo.htm");
            System.IO.StringWriter vltWriter = new System.IO.StringWriter();
            // 4.合并模板和上下文对象,输出
            vltTemplate.Merge(vltContext, vltWriter);

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

将上述代码中需要的部分更改成我需要的配置,1.MapPath中所放路径为htm所在路径,2.vltContext.Put方法中所放为一个键值对,值为想要的信息,如datateble,list等等、、,3.在模版创建中vltEngine.GetTemplate方法中所放为当前要用的模版htm。(file)为以文件方式读取。

3、前台的使用,
前台代码如下:

<head>
    <title>模版引擎的使用</title>
    <style type="text/css">
        img
        {
            width: 50px;
            height: 50px;
        }
        table
        {
            border: 1px solid black;
            border-collapse: collapse;
        }
        table th, table td
        {
            border: 1px solid black;
        }
    </style>
</head>
<body>
    <table>
        <tr>
            <th>
                编号
            </th>
            <th>
                图片
            </th>
            <th>
                支持
            </th>
            <th>
                反对
            </th>
            <th>
                分享
            </th>
            <th>
                描述
            </th>
            <th>
                作者
            </th>
        </tr>
        #foreach($jj in $jia.rows)
        <tr>
            <td>
                $!jj.id
            </td>
            <td>
                <img src="$!jj.url" />
            </td>
            <td>
                $!jj.up
            </td>
            <td>
                $!jj.down
            </td>
            <td>
                $!jj.share
            </td>
            <td>
                $!jj.Description
            </td>
            <td>
                $!jj.author
            </td>
        </tr>
        #end
    </table>
</body>

  

注意在代码中$是一中语法,在$后面跟上vltContext.Put中建好的键值对的键就可以访问数据了,在NVelocity中只有foreach循环,循环开始时用#foreach结束时用#end。
$键的方式是取值,如果没有该值的话,会在页面上显示原有样式,用取反的方式($!键)这样有值则会显示,没值也不会在页面上显示原有样式。
当$!键后直接跟了一段英文或字母,则NVelocity会讲此次的访问当作一个不存在的键访问,这种情况下可以用$!{键}xiaoxue的语法访问。

时间: 2024-08-29 01:01:21

模版引擎(NVelocity)开发的相关文章

如何在前端模版引擎开发中避免使用eval函数

前段时间,想着自己写一个简单的模版引擎,便于自己平时开发demo时使用.于是根据自己对模版引擎的理解,定义自己的模版格式,然后,根据自己定义的格式,编写处理函数,将模版标签中的字符串,解析成可执行的字符串,然后再用eval函数执行该可执行的字符串. 然后问题就出现了!eval等价于evil! 为什么呢?各大js权威书籍上都不提倡使用eval.下面我详细的解释一下为什么不提倡. 首先,大家需要知道,js并不是一门解释型语言.它和其他大家熟知的编程语言(c,java,c++)一样,是编译型语言.但是

js模版引擎开发实战以及对eval函数的改进

简介 前段时间,想着自己写一个简单的模版引擎,便于自己平时开发demo时使用,同时也算是之前学习的知识的一种总结吧! 首先我们先了解一下模版引擎的工作原理吧! 1. 模版引擎其实就是将指定标签的内容根据固定规则,解析为可执行语句字符串: 2. 执行可执行解析后的语句字符串,即生成我们想要的页面结构. 具体实现方法: 1. 最终效果 1 /* 解析前 2 <ul> 3 {{for(var i = 0; i < data.todos.length; ++i)}} 4 {{if(data.to

Asp.net NVelocity 模版引擎

NVelocity.dll是Java中常用的一个模版,下面是常用的模版引擎 1,返回string类型的html代码 1 public string rtnStr(string username, string password) 2 { 3 string rtn = string.Empty; 4 VelocityEngine vltEngine = new VelocityEngine(); 5 vltEngine.SetProperty(RuntimeConstants.RESOURCE_L

Springboot 系列(五)Spring Boot web 开发之静态资源和模版引擎

前言 Spring Boot 天生的适合 web 应用开发,它可以快速的嵌入 Tomcat, Jetty 或 Netty 用于包含一个 HTTP 服务器.且开发十分简单,只需要引入 web 开发所需的包,然后编写业务代码即可. 自动配置原理? 在进行 web 开发之前让我再来回顾一下自动配置,可以参考系列文章第三篇.Spring Boot 为 Spring MVC 提供了自动配置,添加了如下的功能: 视图解析的支持. 静态资源映射,WebJars 的支持. 转换器 Converter 的支持.

前端数据模版引擎的总结

模板的工作原理可以简单地分成两个步骤:模板解析(翻译)和数据渲染.这两个步骤可分别部署在前端或后端来执行.如果放在后端执行,则是像Smarty,FreeMarker这样的后端模板引擎,而如果放在前端来执行,则是我们要探讨的前端模板. FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写,模板用servlet提供的数据动态地生成 HTML,模板语言是强大的直观的,编译器速度快,输出接近静态HTML页面的速度.这里不再对后端模版进行描述. 前端模版提高了前端开发

MGTemplateEngine 模版引擎简单使用(转)

原文:http://blog.csdn.net/crazy_srufboy/article/details/21748995 要实现的效果 首先上图中间的 标题至内容 都是使用UIWebView显示,评论是UITableView可以往下拖加载更多评论,也可以增加评论同删除评论. 动机 评细页中使用 UIWebView 会使显示内容更加的灵活和简单,当然你也许可以网上找UITextView的扩展同样也行,但我感觉HTML更符合我的需求.在多年的PHP开发中我们知道,其实详细页都是大同小异,主要是显

ThinkPHP模版引擎之变量输出具体解释

ThinkPHP模版引擎之变量输出具体解释 使用ThinkPHP开发有一定时间了,今日对ThinkPHP的模板引擎变量解析深入了解了一下.做出一些总结,分享给大家供大家參考. 详细分析例如以下: 我们已经知道了在Action中使用assign方法能够给模板变量赋值,赋值后怎么在模板文件里输出变量的值呢? 假设我们在Action中赋值了一个name模板变量: $name = 'ThinkPHP'; $this->assign('name',$name); 使用内置的模板引擎输出变量,仅仅须要在模版

PHP模版引擎 – Twig

在网站开发过程中模版引擎是必不可少的,PHP中用的最多的当属Smarty了.目前公司系统也是用的Smarty,如果要新增一个页面只需把网站的头.尾和左侧公共部分通过Smarty的include方式引入进来,然后主体部分写内容即可,用起来也是相当方便.这也是一种比较通用的做法.但维护一段时间后发现有些凌乱了: 1. 公共部分内容越加越多了,不需要用的js.css在一些页面也被强制引进来了 2.新页面的css只能写在网页的body内,看起来总让人不爽. 3.左侧.头部.尾部若有特殊显示,操作起来不方

前端模板引擎arttemplate,后端模板引擎Nvelocity

It's my first blog 大家好,我叫曾岑,朋友们都叫我包子,今年21岁,湖北人,刚大学毕业,学的.net开发.去年一年,在南京工作了一年,那时候还没有拿到毕业证,找工作也是蛮难的,别人说没毕业证,也没经验,工资只能给个基础工资,不过还好,和几个朋友一起结伴去的,一起租的房子住的.在南京的工作经历就不说那么多了,至少让我看到了编程的这个世界. 今年7月份,辞掉了南京的工作,来到了深圳这个城市,重新开始找工作,运气还算不错,第二天就面试上了,第三天就正式上班了,工资待遇对于我这种新手来