zoukankan      html  css  js  c++  java
  • NVelocity入门,为服务器与客户端传输xml数据,实现Ajax通信铺平道路[转]

     
    要是直接写个xml,像这个样子:

    到时候我们给这个xml一个人员列表的数据,让它可以生成一个人员列表的xml,这样的工具,我们管它叫模板引擎,NVelocity就属于这类。只要使用模板语言(template language)来编写好模板,到时候给模板引擎解析,并生成我们需要的数据。
    好,既然这样,下面我们来看一下生成貌似上面xml格式数据的模板应该怎么写:

    我们只需要给这个模板一个ListUsers的人员列表数据,模板引擎就会帮我们生成需要的数据,
    其实,学过一些编程语言后,在读模板语言写的代码时,基本上都能够猜出是什么意思。
    我们现在来看看上面那个模板是什么意思:
    #foreach($u in $ListUsers)其实跟C#里面的foreach(Java中的扩展for)几乎一样,就死遍历ListUsers里面的数据,每次遍历的值放到对象u中,接下来
    #beforeall:就是在遍历ListUsers前,先输出<users count="$Count" title="$Title">
    #each:就是每遍历一下,得到一个u,就输出
    <user>
            <name>$u.Name</name> //$u.Name就是输出u对象的Name属性,在Java中就肯定是调用getName()方法了哦,C#实现的NVelocity也延续了java的习惯,就是说,这个也可以表示调用getName()方法,具体是直接调用属性,还是调用方法得看具体情况,NVelocity会自动辨别的
            <sex>$u.Sex</sex>
            <city>$u.City</city>
         </user>
    #afterall:遍历完ListUsers后,输出</users>
    #nodata:如果没数据的话,直接数据<users>暂无用户资料</users>
    #end:表示遍历完毕的结束标志
    看看,是不是真的很简单呢!
    好了,现在我们来看一下在服务器端怎么调用这个模板,并传给这个模板ListUsers这个参数:

        终于搞定了,是不是很简单。 

  • 相关阅读:
    对数据库进行增删改查操作
    Chromium网页Graphics Layer Tree创建过程分析
    苹果产品设计中鲜为人知的10个细节
    翻翻git之---自己定义邮件发送buttonSendButton(流程分析,实现思路能够学习下)
    pascal+sublime搭建Pascal学习环境
    我们的一个已投产项目的高可用数据库实战
    开源 免费 java CMS
    上海居住证续签流程须知
    【LeetCode OJ 232】Implement Queue using Stacks
    Android学习笔记之:android更新ui的几种经常用法
  • 原文地址:https://www.cnblogs.com/flyrain/p/NVelocity1.html
Copyright © 2011-2022 走看看