mustache模板技术

编程技术  /  houtizong 发布于 3年前   71
项目首页:http://mustache.github.com/
项目文档:http://mustache.github.com/mustache.5.html
Demo:  http://mustache.github.com/#demo

简介:
Mustache 是一个 Logic-less templates,原本是基于javascript 实现的模板引擎,类似于 freemark和valicity ,但是比freemark和valicity更加轻量级更加容易使用,经过拓展目前支持javascript,java,.NET,PHP,C++等多种平台下开发!

Mustache.java开发

从http://jmustache.googlecode.com/svn位置检出mustache.java项目代码
将com.samskivert.mustache包下三个.java文件拷贝到项目目录下

新建TestMustache.java文件,拷贝如下代码:
package cn.mustache.test;import java.util.HashMap;import java.util.Map;import com.samskivert.mustache.Mustache;public class TestMustache {/** * Last Modification Time: 2011-6-27 * * @param args */public static void main(String[] args) {//前面加#号的话,如果{{taxed_value}}也是会显示出来的String templete = "Hello {{name}} \n" +"You have just won ${{value}}! \n" +"{{#in_ca}} " +"Well, ${{taxed_value}}, after taxes. \n" +"{{/in_ca}} ";Map<String, Object> ctx = new HashMap<String, Object>();ctx.put("name", "Chris");ctx.put("value", "10000");ctx.put("taxed_value", "10000 - (10000 * 0.4)");ctx.put("in_ca", "true");String result = Mustache.compiler().compile(templete).execute(ctx); System.out.println(result);}}



输出:

Hello Chris
You have just won $10000!
Well, $10000 - (10000 * 0.4), after taxes.


解析:
templete为输出内容的模板,将map类型的ctx填充到templete中,经过编译和执行,便会按照模板生成result


顺便介绍一下基于javascript的开发:
从https://github.com/janl/mustache.js上download 下mustache.js文件
在项目下建js文件夹将mustache.js拷入

新建index.html文件,并将如下代码拷入:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script type="text/javascript" src="js/mustache.js""></script><title>test mustache</title></head><body><script language="javascript">var data, template, html;  data = {      name : "Some Tuts+ Sites",      sites: ["Nettuts+", "Psdtuts+", "Mobiletuts+"],      url : function () {          return function (text, render) {              text = render(text);              var url = text.trim().toLowerCase().split('tuts+')[0] + '.tutsplus.com';              return '<a href="' + url + '">' + text + '</a>';          }      }  };    template = "<h1> {{name}} </h1>" +"<ul> {{#sites}}" + "<li> {{#url}} {{.}} {{/url}} </li>" +  "{{/sites}}  </ul>" ; html = Mustache.to_html(template, data);  document.write(html);window.alert(html);</script></body></html>


请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

留言需要登陆哦

技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成

网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];

      订阅博客周刊 去订阅

文章归档

文章标签

友情链接

Auther ·HouTiZong
侯体宗的博客
© 2020 zongscan.com
版权所有ICP证 : 粤ICP备20027696号
PHP交流群 也可以扫右边的二维码
侯体宗的博客