My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
LiteStyle  

Featured
Updated Jun 20, 2011 by jind...@gmail.com

Lite模板基本概念

表达式

概念类似JSP2.0中引入的EL。Lite默认实现中,采用的是JSEL。这是一个基于JavaScript运算规则的表达式计算引擎。
  • 表达式定义
  • 表达式是一段描述一个简单运算逻辑的文本,表达式执行过程具有无状态、只读的基本特征。他包含,变量,常量,运算符(函数调用也可以封装成一种特殊的操作符)三种基本元素;表达式执行(求值)时,他从上下文读取若干变量或者常量,并将这些原始数据处理成一个唯一的返回值。

表达式
1+1 2
a*2 变量a的两倍
Math.max(a,b,c+2) 变量a,变量b,变量c+常量2三个数的最大值
  • 表达式括弧
  • 模板语言中,为了将表达式文本和普通的模板文本区别开来,我们引入了表达式括弧的概念。 简单的表达式阔幅形式如下:${el},通过表达式阔幅包围起来的源码,本身可以是一个自动编码的模板输出,也可以用于给模板语法提供数据。 表达式括弧不允许嵌套使用!!

示例
您的幸运数字是:${parseInt(Math.random())} 输出一个随机数

<f:if test="${test>0}">...</f:if>

表达式用作if判断的条件(绝对不能写成${${test}>0})

模板语法

  • 标记语法模式
  • 类似JSP中的标记库,Lite核心语法(LiteXML)在表现上与JSTL类似,但更简单。 同时,也提供了若干变种(属性语法,文本语法)。
  • 属性语法模式
  • Lite 模板系统除标记模式外,也支持属性模式,这是一种更加紧凑的语法模式。 实例:
    <c:if test="${keyword}">
       <strong>${keyword}</strong>
    </c:if>
    
    与之等价的属性语法是:
    <strong c:if="${keyword}">${keyword}</strong>
  • 文本语法模式
  • 有些时候,我们不需要xml约束,这时,也许文本模式。 实例:
    $if{keyword}${keyword}$end$

模板语法设计基本风格

小国寡民

Lite模板的每一组语法都是独立的扩展,确保了核心语法的简洁,以及系统扩展的自由。
  • 核心语法设计(LiteXML)
  • 这时Lite模板的基本语法,他包括基本的控制逻辑,变量申明函数定义,模板文件组织管理(包含,继承等),不包括任何展现逻辑的代码(如:没有html环境相关功能)
  • html优化扩展
  • 这里没有设计新的语法,他只是在html自身语法的基础上,自动实现一些优化需求,如:js,css压缩,js/css资源管理(组件依赖相关)
  • UI扩展
  • 这是针对html环境下展现逻辑需求而设计的语法扩展,功能主要是前端模板支持,自动表单语法。
  • 组件扩展
  • 这是一种通过模板直接编写,发布ui组件的插件扩展模式【待续....】

大象无形

  • 拒绝浮华
  • Lite平台拒绝华而不实,好大喜功的设计。比如:Lite非常强调自然的利用 XML语法和html自身语法,实现一些语义上自动化的功能,而不是为这些功能设计新的语法。
  • 保持低调
  • Lite平台本身是一个功能非常强大的平台,所以我们更需要保持一种低调,自然的风格,杜绝没必要的复杂。减少初学者学习成本呢。


Sign in to add a comment
Powered by Google Project Hosting