`
CshBBrain
  • 浏览: 650081 次
  • 性别: Icon_minigender_1
  • 来自: 成都
博客专栏
B7d9bf34-126e-301f-819e-81f2615b5a2a
开源WebSocket服务...
浏览量:144903
Group-logo
HTML5移动开发
浏览量:137847
社区版块
存档分类
最新评论

mustache模板技术(转)

 
阅读更多

项目首页: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文件,拷贝如下代码: 

Java代码  收藏代码
  1. package cn.mustache.test;  
  2.   
  3. import java.util.HashMap;  
  4. import java.util.Map;  
  5. import com.samskivert.mustache.Mustache;  
  6.   
  7. public class TestMustache {  
  8.   
  9.     /** 
  10.      * Last Modification Time: 2011-6-27 
  11.      * 
  12.      * @param args 
  13.      */  
  14.     public static void main(String[] args) {  
  15.           
  16.                   
  17.         //前面加#号的话,如果{{taxed_value}}也是会显示出来的  
  18.         String templete = "Hello {{name}} \n" +  
  19.                             "You have just won ${{value}}! \n" +  
  20.                             "{{#in_ca}} " +  
  21.                             "Well, ${{taxed_value}}, after taxes. \n" +  
  22.                             "{{/in_ca}} ";  
  23.           
  24.         Map<String, Object> ctx = new HashMap<String, Object>();  
  25.         ctx.put("name""Chris");  
  26.         ctx.put("value""10000");  
  27.         ctx.put("taxed_value""10000 - (10000 * 0.4)");  
  28.         ctx.put("in_ca""true");  
  29.           
  30.         String result = Mustache.compiler().compile(templete).execute(ctx);  
  31.            
  32.           
  33.         System.out.println(result);  
  34.     }  
  35.       
  36.   
  37.   
  38. }  



输出: 

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文件,并将如下代码拷入: 
Html代码  收藏代码
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  2. <html>  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  5. <script type="text/javascript" src="js/mustache.js""></script>  
  6. <title>test mustache</title>  
  7. </head>  
  8. <body>  
  9. <script language="javascript">  
  10.   
  11. var data, template, html;    
  12. data = {    
  13.     name : "Some Tuts+ Sites",    
  14.     sites: ["Nettuts+", "Psdtuts+", "Mobiletuts+"],    
  15.     url : function () {    
  16.         return function (text, render) {    
  17.             text = render(text);    
  18.             var url = text.trim().toLowerCase().split('tuts+')[0] + '.tutsplus.com';    
  19.             return '<a href="' + url + '">' + text + '</a>';    
  20.         }    
  21.     }    
  22. };      
  23. template = "<h1> {{name}} </h1>" +  
  24.             "<ul> {{#sites}}" +   
  25.             "<li> {{#url}} {{.}} {{/url}} </li>" +    
  26.             "{{/sites}}  </ul>" ;   
  27. html = Mustache.to_html(template, data);    
  28. document.write(html);  
  29. window.alert(html);  
  30. </script>  
  31. </body>  
  32. </html>  

分享到:
评论

相关推荐

    前端模板引擎Mustache教程.zip

    4. "Mustache模板技术,一个比freemarker轻量级的模板引擎 - cnhome的专栏 - CSDN博客":对比了Mustache和Freemarker,有助于理解它们各自的优缺点,以及在不同场景下的选择。 5. "mustache.js的使用说明 - ...

    前端项目-requirejs-mustache.zip

    【描述】中提到"mustache.js微模板的RequireJS/AMD加载程序插件"意味着这个项目结合了Mustache模板引擎和RequireJS的模块加载功能。在RequireJS中,我们可以创建一个插件来支持Mustache模板的加载和解析。通过这种...

    vraptor-mustache-1.0.zip

    【标题】"vraptor-...总的来说,"vraptor-mustache-1.0.zip"是一个使用Vraptor框架和Mustache模板技术的开源Web项目,它提供了处理下载功能的解决方案,并且遵循开源社区的标准,为开发者提供了学习和贡献的平台。

    使用Mustache.js实现的asp.net mvc客户端模版的例子

    为了实现这一目标,客户端模板技术被广泛采用,它允许在浏览器端进行数据绑定和渲染,提高应用程序的响应速度。在这个例子中,我们将探讨如何使用JavaScript库Mustache.js在ASP.NET MVC项目中实现客户端模板。 ...

    mustache-maven-plugin-1.1.zip

    【标题】"mustache-maven-plugin-1.1.zip" 提供的是 Mustache Maven 插件的一个版本,这个插件是用于将 Mustache 模板语言集成到 Maven 构建流程中的工具。Mustache 是一个逻辑less的模板语言,它的理念是“Logic-...

    mustache.js

    客户端模板技术。增加html代码的可维护性。高效转换Html代码。

    mustache:Go语言中的胡子模板语言

    这是Go语言中的胡子模板语言的实现。 它受到启发,但它不是fork,而是经过改进的规范一致性的重新实现,更灵活的API(例如,对io.Writer和io.Reader支持)。 它是使用幻灯片中描述的化技术以及博客中有关功能选项...

    Spring5Boot2Mustache:Spring5 Boot2小胡子

    之后,Spring Boot会自动配置Mustache视图解析器,使得我们可以在控制器中返回一个模型AndView,模型中的数据将自动绑定到Mustache模板中。 4. **配置Mustache** 虽然Spring Boot自动配置了Mustache,但我们可以...

    juzu-templating-mustache-0.5.2.zip

    【标题】"juzu-templating-mustache-0.5.2.zip" 提供的是一个基于Mustache模板引擎的Scala实现,版本为0.5.2,名为Juzu Templating Mustache。Juzu是一个轻量级的Web框架,旨在简化开发过程,提供高效的服务器端渲染...

    ASP.NET 动态模板解析技术 v1.0.zip

    常见的库如Handlebars、Mustache或AngularJS等,它们提供模板语法,允许开发者将数据绑定到HTML结构中,实现页面的动态更新。 5. **模板引擎的工作原理** - 模板引擎通常接收两个输入:一个是模板字符串,另一个是...

    template模板

    在IT行业中,模板技术是一种非常常见且实用的设计模式,它允许开发者将数据和视图分离,使得代码更加模块化和可维护。这里的“template模板”指的是用于构建动态HTML页面的一种方法,尤其在JavaScript中,它使得HTML...

    百度模板--baiduTemplate.js

    【标签】"baiduT 百度模板"是关键词,用于标识这个文件与百度(Baidu)相关,特别是与百度的模板技术有关。"baiduT"可能是一个简写或者特定的标记,代表百度的技术或产品。"百度模板"则直接指明了这是一个关于百度...

    有渔微信小程序技术分析《五》Mustache语法要点总结

    小程序开发的wxml里,用到了Mustache语法。所以,非常有必要把Mustache研究下。...1、Mustache的模板语法很简单,就那么几个: {{keyName}} {{{keyName}}} {{#keyName}} {{/keyName}} {{^keyName}} {{/k

    前端框架模板手册

    在前端模板1中,你可能将学习到如何使用 Handlebars、Mustache 或 EJS 等模板引擎来简化视图渲染,以及如何在不同框架中集成和管理这些模板。 前端手册1通常会涵盖基础到高级的前端开发知识,包括但不限于: 1. ...

    javascript 视图模板 2.0

    模板引擎通常是独立的库或框架的一部分,如Mustache、Handlebars、EJS等。它们提供了各种语法特性,如变量插值、条件语句、循环结构等,来帮助构建复杂的模板。例如,你可以使用双大括号`{{ }}`包裹变量,用`{{#if}}...

    csrf-spring-webflux-mustache:此存储库包含使用spring boot 2.0,webflux,spring security 5,React性mongodb和mustache模板引擎的示例应用程序:spring security 5,带有胡子的CSRF保护,spring webflux功能路线安全,方法安全,授权决定等

    标题中的"csrf-spring-webflux-mustache"项目是一个演示应用程序,它展示了如何在Spring Boot 2.0、WebFlux、Spring Security 5、Reactive MongoDB和Mustache模板引擎的环境中实现CSRF(跨站请求伪造)保护。...

    带有Mustache.js的ASP.NET(Web表单/ MVC)中的客户端模板

    1. **定义模板**: 在HTML页面的`&lt;script type="text/html"&gt;`标签内定义Mustache模板。 2. **数据绑定**: 在JavaScript中获取服务器返回的数据,并使用Mustache.render()方法进行渲染。 3. **更新DOM**: 将渲染后的...

    jquery 模板

    jQuery 模板系统是基于经典的Mustache模板语言的理念,它使用特殊的标记来指示JavaScript对象如何被转化为HTML元素。这个系统使得开发者能够将数据绑定到HTML结构上,从而实现动态内容的渲染。 在jQuery模板中,...

    PyPI 官网下载 | pystache-0.4.1.tar.gz

    1. **逻辑less**:Mustache模板不包含任何条件判断或循环语句,这些逻辑需要在后端代码中处理,然后将结果传递给模板进行渲染。 2. **标签语法**:Mustache使用双大括号`{{ }}`来表示变量,三重大括号`{{{ }}}`用于...

Global site tag (gtag.js) - Google Analytics