小白一个,刚刚开始学,大神不要笑话。。。。。。

NVelocity是一个很容易上手的框架,从它开始学习,可以循序渐进

首先,创建空web应用程序,新建一般处理程序 Login2.ashx

然后,引入NVelocity,

c

创建Html 页面login.htm,实现登录框架

NVelocity语法是$开头

<html>
<head></head>
<body>
<strong><font color='green'>登录</font></strong>
<form action='Login2.ashx'>
<input type='text' name='username' value='$username'/>
<input type='password' name='password' value='$password' />
<input type='submit' value='登录'/>
</form>
<p>$msg</p>
</body>
</html>

编写Login2.ashx.cs页面,使用NVelocity处理请求

public class Login2 : IHttpHandler
{ public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/html";
string username = context.Request["username"];
string password = context.Request["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("username", "");//设置参数,在模板中可以通过$data来引用
vltContext.Put("password", "");
vltContext.Put("msg", "");
Template vltTemplate = vltEngine.GetTemplate("login.htm");
System.IO.StringWriter vltWriter = new System.IO.StringWriter();
vltTemplate.Merge(vltContext, vltWriter); string html = vltWriter.GetStringBuilder().ToString();
context.Response.Write(html);
}
else
{
if (username == "admin" && password == "")
{
context.Response.Write("登录成功");
}
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("username", username);//设置参数,在模板中可以通过$data来引用
vltContext.Put("password", password);
vltContext.Put("msg", "用户名或者密码错误"); Template vltTemplate = vltEngine.GetTemplate("login.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;
}
}

NVelocity的强大之处不仅仅这些,它还可以对 对象的属性进行赋值,看下面的例子

<html><head></head><body>
$p.Name
<p>我的老爹是 $p.Father.Name,他的年龄是$p.Father.Age </p>
</body></html>

后台处理程序:

context.Response.ContentType = "text/html";

            Person person = new Person();
person.Name = "张三";
person.Age = ;
Person dad = new Person(); dad.Name = "张三的爹";
dad.Age = ; person.Father = dad; 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来引用
Template vltTemplate = vltEngine.GetTemplate("test.htm");
System.IO.StringWriter vltWriter = new System.IO.StringWriter();
vltTemplate.Merge(vltContext, vltWriter); string html = vltWriter.GetStringBuilder().ToString();
context.Response.Write(html);

代码下载地址:http://download.csdn.net/detail/murongqingsi/9156661

NVelocity下载地址:http://download.csdn.net/detail/murongqingsi/9156623

1、C# MVC学习之NVelocity基本使用的更多相关文章

  1. MVC学习系列4--@helper辅助方法和用户自定义HTML方法

    在HTML Helper,帮助类的帮助下,我们可以动态的创建HTML控件.HTML帮助类是在视图中,用来呈现HTML内容的.HTML帮助类是一个方法,它返回的是string类型的值. HTML帮助类, ...

  2. Spring MVC 学习 -- 创建过程

    Spring MVC 学习 -- 创建过程 Spring MVC我们使用的时候会在web.xml中配置 <servlet> <servlet-name>SpringMVC< ...

  3. 前端MVC学习总结——AngularJS验证、过滤器

    前端MVC学习总结--AngularJS验证.过滤器 目录 一.验证 二.过滤器 2.1.内置过滤器 2.1.1.在模板中使用过滤器 2.1.2.在脚本中调用过滤函数 2.2.自定义过滤器 三.指令( ...

  4. 《Spring MVC学习指南》怎么样?答:书名具有很大的欺骗性

    2016年6月21日 最近,因为工作需要,我从网上买了一本<Spring MVC学习指南>,ISBN编号: 978-7-115-38639-7,定价:49.00元.此书是[美]Paul D ...

  5. PHP实例开发(3)PHP中MVC学习之ThinkPHP

    PHP中MVC学习之ThinkPHP 1.什么是MVC MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器.使用MVC的目的是将M和V的实现代码分离 MVC是一个设 ...

  6. Asp.net MVC 学习系列(一)序

    题外话 公司本月开始提供早餐服务,2块天一餐,包括粥,两个包(听说是利口福供应的),一个鸡蛋.良心企业.公司原本有一个内部订餐系统,用Delphi开发的,开发的人早就走光了,也没有留下什么文档,现在项 ...

  7. MVC学习(四)几种分页的实现(3)

    在这篇MVC学习(四)几种分页的实现(2)博文中,根据URL中传入的两个参数(页码数,首页.上一页.下一页.末页的标记符)来获得对应的分页数据, 只是传入的参数太多,调用起来不太方便(标记符不能够写错 ...

  8. ASP.NET MVC学习之Ajax(完结)

    一.前言 通过上面的一番学习,大家一定收获不少.但是总归会有一个结束的时候,但是这个结束也意味着新的开始. 如果你是从事ASP.NET开发,并且也使用了第三方控件,那么一定会觉得ASP.NET开发aj ...

  9. ASP.NET MVC学习之视图篇(2)

    继ASP.NET MVC学习之视图(1)学习 4.HTML辅助器 虽然在ASP.NET MVC中我们已经摆脱了ASP.NET的控件,但是对于页面中需要循环标签的情况依然还是存在,可能很多人认为用for ...

随机推荐

  1. 20169210《Linux内核原理与分析》第五周作业

    本次内容分为两部分,第一部分是实验,第二部分是教材的第四章和第六章. 第一部分:实验 本次的实验内容是构造一个简单的Linux系统MenuOS,过程如下. 首先使用如下命令进入LinuxKernel ...

  2. ZBar只扫描二维码/条形码

    You can add these codes for ImageScanner scanner.setConfig(0, Config.ENABLE, 0); //Disable all the S ...

  3. SSH服务

    基于Linux的服务器有多个网卡,其中一个网卡连接了网线,通过该网线链接了个人PC.PC上启动Vmware虚拟机,启动ubuntu系统.然后设置PC的网络为自动获取IP,在PC的Linux的Ubunt ...

  4. Tomcat优化参数

    JAVA_OPTS="-Xmx400m -Xms400m -XX:PermSize=128m -XX:MaxPermSize=400m -XX:+UseG1GC -XX:MaxGCPause ...

  5. Spring XD 1.1 M2 and 1.0.3 released---support kafka

    官方地址:http://spring.io/blog/2014/12/23/spring-xd-1-1-m2-and-1-0-3-released On behalf of the Spring XD ...

  6. 5 Common Interview Mistakes that Could Cost You Your Dream Job (and How to Avoid Them)--ref

    There have been many articles on our site on software testing interviews. That is because, we, as IT ...

  7. Tomcat的server.xml(中文版)

    原文地址: http://www.blogjava.net/ranxiang/articles/23145.html <!-- Example Server Configuration File ...

  8. oracle授权另外一个用户访问自己创建的数据对象

    oracle安装好之后,有一个默认的scott用户,该用户有一个默认的emp表,怎样让新创建的用户也能够访问这个表呢? 授权xiaoming这个用户访问emp表,但是xiaoming只有select权 ...

  9. 我的Shell + VIM配置

    1. 安装powerline-shell 下载powerline-shell # cd /opt/ # git clone https://github.com/milkbikis/powerline ...

  10. Mybaitis配置总结

    在mybatis-config.xml中配置分页插件,插件配置必须放在mapper前面 <plugins> <plugin interceptor="com.rrtong. ...