beetl 前端

1. 自定义标签和html标签

模版基础配置。文件位置:/org/beetl/core/beetl-default.properties

l html标签:

HTML_TAG_SUPPORT = true   

HTML_TAG_FLAG = #   

HTML_TAG_BINDING_ATTRIBUTE = var

说明:

HTML_TAG_SUPPORT = true HTML_TAG_FLAG = #

符号为#,默认配置下,模板引擎识别<#tag >这样的类似html标签,并能调用相应的标签函数或者模板文件。

HTML_TAG_BINDING_ATTRIBUTE = var

如果标签属性有var,则认为是需要绑定变量给模板的标签函数


l 自定义标签:

 ## 标签类

TAG.include= org.beetl.ext.tag.IncludeTag

说明:

 注册了一个include标签函数


2,定界符与占位符号

 Beetl模板语言类似JS语言和习俗。

l  定界符号:<% %> (表达式)

l 占位符用于静态文本里嵌入占位符用于输出:${}

3. 全局变量,临时变量、共享变量、模板变量

l 全局变量 全局变量是通过template.binding传入的变量,这些变量能在模板的任何一个地方,包括子模板都能访问。(后台配合)

n 实现方式:

template.binding("list",service.getUserList());    // list:用户列表集合

n 源理过程:略

l 临时变量类似js语言和习俗(在模板中定义的变量成为临时变量)

  <% var a = 3;

var b = 3,c = "abc",d=true,e=null;

var f = [1,2,3];

var g = {key1:a,key2:c}; var i = a+b; %>

l 共享变量 共享变量指在所有模板中都可以引用的变量,后台配合。

n 实现方式:

groupTemplate.setSharedVars(Map sharedVars)传入变量

n  源理过程:略

l  模板变量是一种特殊的变量,即可以将模板中任何一段的输出赋值到该变量,并允许稍后在其他地方使用

<% var content = {        

  var c = "1234";   

print(c); %> 模板其他内容:

          <% }; %>

说明:

 模板变量content = { …} ; 此变量跟临时变量一样,可以在其他地方使用,最常 见的用法是用于复杂的布局。请参考高级用法布局。


4.布局技术

 类似js语言和习俗

 w3c js 参考

 jqueyry meiui等三方库

5.直接调用java代码

可以通过符号@来表明后面表达式调用是java风格,可以调用对象的方法,属性

n  文件位置 /org/beetl/core/beetl-default.properties

 NATIVE_CALL = TRUE 

说明:允许本地Class直接调用

n 详细说明

${@user.getMaxFriend(“lucy”)}

${@user.maxFriend[0].getName()} 

${@com.xxxx.constants.Order.getMaxNum()}

${@com.xxxx.User$Gender.MAN}

<% var max = @com.xxxx.constants.Order.MAX_NUM; var c =1; var d = @user.getAge(c); %>

说明:可以调用instance的public方法和属性,也可以调用静态类的属性和方法,需要加一个@指示此调用是直接调用class,其后的表达式是java风格的。

need-to-insert-img


6.页面赋值(属性处理)

n 通过”.”号来访问对象的的属性:${xxx.name}

n 数组或者List类:${userList[0]}

n Map类:${map[“name”]}; 或者${map.name}

n Beetl也支持Generic Get方式,即如果对象有一个public Object get(String key)方法,可以通过”.”号或者[]来访问,譬如${activityRecord.name}或者${activityRecord[“name”] }都将调用activityRecord的get(String key)方法。如果对象既有具体属性,又有Generic get(这种模型设计方式是不值得鼓励),则以具体属性优先级高.

n 可以通过[]来引用属性如${user[“name”]}相当于${user.name}.这跟javascript保持一致。但建议不这么做,因为容易让阅读模板的人误认为这是一个Map类型


n  定义额外的对象属性,而无需更改java对象,这叫着虚拟属性,如,对于所有集合,数组,都有共同的虚拟属性size.虚拟属性是“.~”+虚拟属性名

7.局部渲染技术

越来越多web网站依赖于ajax,如table的翻页,流行方式是浏览器发出ajax请求,后台处理后返回一个json,浏览器端将json数据拆开,拼成一条一条的行数据,然后生成dom节点,追加到表格里。作为另外一种可选技术,beetl支持局部渲染技术,允许后台处理返回的是一个完成的html片段

need-to-insert-img

后台调用:

render("/index.html#userTable");

 原理过程:暂略



参考官网http://ibeetl.com/guide/#beetl

你可能感兴趣的:(beetl 前端)