Asp.net动态页面静态化之字典哈希表的输出已及遍历判断的实现

Asp.net动态页面静态化之字典哈希表的输出已经遍历判断的实现

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using NVelocity.Runtime;
using NVelocity;
using NVelocity.App;
using System.Collections;

namespace czbk
{
    /// <summary>
    /// dictionary 的摘要说明
    /// </summary>
    public class dictionary : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/html";
            //新建一个带索引字典
            Dictionary<string, string> dict = new Dictionary<string, string>();
            dict["java"] = "java工程师";
            dict["net"] = "net工程师";
            dict["c"] = "c工程师";
            //新建hash表
            //           Dictionary          HashTable
            //           强类型                 弱类型
            //           内存小                 内存多
            //Dictionary<key,value>为HashTable的泛型版本只是 Dictionary<key,value>对存入数据类型有要求,而HashTable可以存入任何类型。
            Hashtable hash = new Hashtable();
            hash.Add("adc", "寒冰射手");
            hash.Add("apc", "九尾妖狐");
            //新建数组
            string[] strs = new string[] { "ef","linq","mvc","jQueery"};
            //新建集合
            List<Role> newrole=new List<Role>();
            newrole.Add(new Role { Roleid = "001", Rolename = "青铜" });
            newrole.Add(new Role { Roleid = "002", Rolename = "白银" });
            newrole.Add(new Role { Roleid = "003", Rolename = "黄金" });
            newrole.Add(new Role { Roleid = "004", Rolename = "铂金" });
            VelocityEngine vltEngine = new VelocityEngine();
            vltEngine.SetProperty(RuntimeConstants.RESOURCE_LOADER, "file");
            vltEngine.SetProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, System.Web.Hosting.HostingEnvironment.MapPath("~/"));//模板文件所在的文件夹
            vltEngine.Init();
            VelocityContext vltContext = new VelocityContext();
            vltContext.Put("dict", dict);//设置参数,在模板中可以通过$data来引用);
            vltContext.Put("hash", hash);
            vltContext.Put("strs", strs);
            vltContext.Put("newrole", newrole);
            Template vltTemplate = vltEngine.GetTemplate("dictionary.htm");
            System.IO.StringWriter vltWriter = new System.IO.StringWriter();
            vltTemplate.Merge(vltContext, vltWriter);
            string html = vltWriter.GetStringBuilder().ToString();
            context.Response.Write(html);
        }
        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

前台界面

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>
=========字典索引输出=========<br />
$dict.java<br />
$dict.net<br />
$dict.c<br />
=========哈希表输出=========<br />
$hash.adc<br />
$hash.apc<br />
=========数组遍历输出=========<br />
<ul>
#foreach($str in $strs)
<li>
$str
</li>
#end
</ul>
=========集合遍历输出=========<br />
<ul>
#foreach($r in $newrole)
<li>
$r.roleid<span style="color:Red;">$r.rolename</span>
</li>
#end
</ul>
=========if判断=========<br />
<ul>
#foreach($rr in $newrole)
$rr.roleid
  #if($rr.rolename=="铂金")
    <li>哇!你是华贵的铂金啊!</li>
  #elseif($rr.rolename=="黄金")
   <li>哇!你是尊贵的黄金啊!继续保持</li>
  #else
    <li>你还需要加油喔!</li>
  #end
#end
</ul>
</body>
</html>

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-07 04:33:07

Asp.net动态页面静态化之字典哈希表的输出已及遍历判断的实现的相关文章

Asp.net动态页面静态化之初始NVelocity模板引擎

Asp.net动态页面静态化之初始NVelocity模板引擎 静态页面是网页的代码都在页面中,不须要运行asp,php,jsp,.net等程序生成client网页代码的网页,静态页面网址中一般不含"?"."="."&"等特殊符号. 静态页面不能自主管理公布更新的页面,假设想更新网页内容,要通过FTP软件把文件DOWN下来用网页制作软件改动(通过fso等技术例外) 常见的静态页面举例:.html扩展名的..htm扩展名的. 注意:静态页面并

Asp.net动态页面静态化之include和parse区别

Asp.net动态页面静态化之include和parse区别    #include就是在模版中在将其他模版包括进来,就好比网站的头部,尾部,广告模版等等,这些内容都是相同的时候,就可以做成一个单独的模版供各处引用. #parse的用法跟#include相类似,如果将上面的代码改成#parse之后,效果是一样的,#parse的特殊功能在于,它可以解析Nvelocity元素,比如,body.html 模版使用Nvelocity变量 $body ,如果使用#parse引用head.html和foot

Asp.net动态页面静态化之输出对象属性(实体关联)

Asp.net动态页面静态化之输出对象属性(实体关联) 模板引擎不单单可以输出单一的数据,还能直接输出对象的属性 using System; using System.Collections.Generic; using System.Linq; using System.Web; using NVelocity.Runtime; using NVelocity; using NVelocity.App; namespace czbk { /// <summary> /// Handler2

学习笔记 --- 缓存、动态页面静态化、网站优化

http://www.cnblogs.com/cs_net/archive/2011/03/17/1986620.html 一.缓存 缓存(Cache)技术在软件开发过程中有着广泛的用途, 它对提升软件性能和改善客户体验有很大帮助. 所谓缓存, 是指将那些经常重复的操作结果暂时存放起来, 在以后的执行过程中, 只要使用前面的暂存结果即可. 缓存技术在日常生活中随处可见, 就拿排队买票来说吧: 买票时需要先排队, 等轮到自己了, 再告诉售票员你需要买那里的票, 售票员查询完后告诉你有还是没有. 若

Spring MVC 学习总结(七)——FreeMarker模板引擎与动态页面静态化

模板引擎可以让程序实现界面与数据分离,业务代码与逻辑代码的分离,这就提升了开发效率,良好的设计也使得代码复用变得更加容易.一般的模板引擎都包含一个模板解析器和一套标记语言,好的模板引擎有简洁的语法规则.强大的功能.高效的渲染效率.详尽的帮助说明与不断的更新与维护.常见的前端模板引擎有: 常用的java后台模板引擎:jsp.FreeMarker.Velocity等. 请不要迷恋速度,为了推广的测试可能是片面的,好的模板引擎经得起时间考验,建议大家选择成熟的.常用的模板引擎.另外不管前后端的模板引擎

动态页面静态化的实现

首先,应该明确动态页面与静态页面之间的区别,为什么静态页面的加载要比动态的快. PHP文件的执行阶段是:语法分析——>编译——>运行. 动态是执行这整个过程. 静态(只是一个纯静态的 html 文件),跳过了分析和编译的步骤,直接运行. (优化页面响应时间的常见四种方法:动态页面静态化,优化数据库,使用负载均衡,使用缓存..) 静态化用于那些不需要经常变动的页面,生成一个静态页面供用户访问,以减少服务器脚本的响应.计算时间. PHP静态化-->伪静态:可以通过设置apache服务器得到,

Asp.Net MVC页面静态化功能实现二:用递归算法来实现

上一篇提到采用IHttpModule来实现当用户访问网站的时候,通过重新定义Response.Filter来实现将返回给客户端的html代码保存,以便用户下一次访问是直接访问静态页面. Asp.Net MVC页面静态化功能实现一:利用IHttpModule,摒弃ResultFilter 后来想到可以通过WebRequest获取html代码,然后采用递归算法来实现.基本实现思路如下: 通过WebRequest获取超链接地址返回的html代码,并保存:通过正则表达式匹配html代码中所有的超链接hr

利用ResultFilter实现asp.net mvc3 页面静态化

为了提高网站性能.和网站的负载能力,页面静态化是一种有效的方式,这里对于asp.net mvc3 构架下的网站,提供一种个人认为比较好的静态话方式. 实现原理是通过mvc提供的过滤器扩展点实现页面内容的文本保存,直接上代码: 1 public class StaticFileWriteFilterAttribute : FilterAttribute, IResultFilter 2 { 3 public void OnResultExecuted(ResultExecutedContext f

利用ResultFilter实现asp.net mvc 页面静态化

为了提高网站性能.和网站的负载能力,页面静态化是一种有效的方式,这里对于asp.net mvc3 构架下的网站,提供一种个人认为比较好的静态话方式. 实现原理是通过mvc提供的过滤器扩展点实现页面内容的文本保存,直接上代码: public class StaticFileWriteFilterAttribute : FilterAttribute, IResultFilter { public void OnResultExecuted(ResultExecutedContext filterC