`
tsinglongwu
  • 浏览: 232817 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

ZK EL表达式(转载)

    博客分类:
  • ZK
阅读更多
一、与Java区别
1.一个字符串可以用单引号或双引号括起来。换句话说,'abc’和”abc”是相同的
2.empt操作可以验证String、list、map是否为空或者是null例如:${empty param.add}如果add是空的返回true,否则false。
3. 点(.) 操作符是允许你使用一个Map键或者一个bean性质名来访问值。例如:${foo.value.name}
4.[]操作符可以用来访问数组和list、map键值、bean性质对象。如:${ary[5]}、${wnd[‘title’]}.
5.如果没有值或者数组越界则返回null
二、结合Java
EL表达式求值时,在服务器的页面呈现。因此,它是允许访问
1.可以用组件ID使用
2.在Zscrip定义变量
3.隐式对象
<window title="EL">
    <textbox id="tb" value="${self.parent.title}"/> <!-- self 引用自身的隐式对象   -->
    ${tb.value} <!-- tb 是textbox的ID -->
    <button label="Enter" if="${not empty param.edit}"/>
    <zscript>Date now = new Date();</zscript>
    <datebox value="${now}"/> <!-- now 是在定义在 zscript -->
</window>

此外,您可以定义一个变量解析器(variable resolver) 结合一个对象的命名或者映射一个静态方法函数
@.variable Resolver
package foo;
public class CustomerResolver implements org.zkoss.xel.VariableResolver {
    public Object resolveVariable(String name) {
        if ("customers".equals(name))
            return Customer.getAll("*");
//     if ("recent".equals(name))
//         return something_else;
        return null; //not a recognized variable
    }
}

然后、你可以指定variable-resolver指令,如:
<?variable-resolver class="foo.CustomerResolve"?> 
<listbox>
    <listitem label="${each.name}" forEach="${customers}"/>
</listbox>

@关联java方法
集合对象可以通过调用一个静态方法得到值。例如,假设我们有一个类和静态的方法如下
package foo;
public class Customer {
    public Collection<Customer> getAll(String condition) {
        //...returns a collection of customers
    }
    public String getName() {
       return _name;
    }
    //...
}

然后,我们通过xel-method指令来获取他们:
<?xel-method prefix="c" name="getAllCustomers" class="foo.Customer"
   signature="java.util.Collection getAll(java.lang.String)"?><!-- 不允许泛型-->
<listbox>
    <listitem label="${each.name}" forEach="${c:getAllCustomers('*')}"/>
</listbox>

@关联多个java方法
如果有多个静态方法,你把它们声明在一个xml格式的taglib文件中如:
<taglib>
    <function>
        <name>getAllCustomers</name>
        <function-class>foo.Customer</function-class>
        <function-signature>
    java.util.Collection getAll(java.lang.String)
        </function-signature>
        <description>
    Returns a collection of customers.
        </description>
    </function>
    <!-- any number of functions are allowed -->
</taglib>

然后,你可以指定taglib指令使用它们了
<?taglib uri="/WEB-INF/tld/my.tld" prefix="my"?>
<listbox>
    <listitem label="${each.name}" forEach="${my:getAllCustomers('*')}"/>
</listbox>

转自:http://www.cnblogs.com/xiaopen/archive/2011/03/07/zk_EL.html
分享到:
评论

相关推荐

    ZK文档开发

    这是因为ZScript的设计理念在于提供一种更高级别的抽象层,使得开发者可以直接使用ZScript语法来处理数据绑定、事件监听等操作,而无需依赖于EL表达式。这为开发者提供了一个更加简洁和直观的方式来编写逻辑代码。 ...

    ZK框架:Ajax开发实战

    ZUL文件中可以嵌入EL表达式,方便地处理数据绑定和事件处理。 5. **Composer**:Composer是ZK中的一个关键概念,它是负责组件行为和状态管理的类。通过实现Composer,开发者可以控制组件的生命周期,监听和响应用户...

    ZK数据绑定

    6. 表达式语言:ZK支持一种称为ZK EL(ZK Expression Language)的表达式语言,用于在绑定表达式中进行条件判断、逻辑运算和方法调用。开发者可以通过ZK EL灵活地控制数据绑定的行为。 7. 绑定上下文:在ZK中,数据...

    ZK框架开发手册

    手册中详细讨论了命令和通知的绑定,以及如何使用EL表达式来进行数据绑定。 ZK框架还支持使用注解来简化开发过程,包括在ZUML和Java代码中使用注解。开发者可以在组件定义中添加注解来增强组件的功能,同时也可以...

    ZK Developer Guide

    - ZK 使用一种称为 zscript 的脚本语言,以及一种叫做 EL (Expression Language) 的表达式语言,使得开发者可以轻松地控制组件的行为。 - **ZK 不是什么?** - ZK 并不是一个完整的应用程序开发平台或操作系统。 ...

    zk-demo-3.5.2.zip_ruby _ui_zk ajax_zk demo zip_zkdemo3 download

    ZK是一个Ajax Java Web框架,利用少量代码就能够开发出拥有Rich UI的Web应用...支持EL表达式和脚本语言包括:JavaScript、Ruby和Groovy等。支持Annotation及数据绑定。集成Google Maps、FCKeditor、DOJO以及Timeline。

    ZK Dev Guide 2.4.1 English Version

    zscript 和 EL 表达式是 ZK 中两种重要的编程机制。它们可以结合使用,以灵活地处理数据和用户界面。 ##### 多作用域解释器 ZK 支持多作用域解释器的概念,这意味着可以在不同的上下文中执行 zscript 代码。这种...

    ZK中文开发手册 html

    6. **脚本和表达式语言**:ZK支持ZUL(ZK User Interface Language)和EL(Expression Language),手册会解释这两种语言的语法和使用场景。 7. **皮肤和主题**:讲解如何定制ZK的外观,包括修改CSS样式和创建...

    ZK-devguide

    为了方便快速模型开发(prototyping)和定制,ZK允许开发人员嵌入EL表达式,以及您喜欢的脚本语言,包括但不限于 Java[3], JavaScript[4], Ruby[5] and Groovy[6]. 开发人员可以选择不嵌入任何脚本语言,如果他们喜欢...

    zk中文人员开发手册.rar

    4. **表达式语言 (EL)**: ZK 提供了强大的 EL,允许开发者在 XML 配置中直接引用 Java 对象和方法,简化了界面与后台数据的绑定。 5. **ZUL 文件**: ZK 的视图文件使用 ZUL 格式,这是一种标记语言,类似于 HTML,...

    zk 数据绑定(grid进行嵌套显示数据)

    这样,可以利用ZK的EL表达式(Expression Language)来访问对象的嵌套属性,并将其显示出来。 2. 列定义示例: ```xml ${row.user.name} ${row.user.address.street}, ${row.user.address.city} ...

    zk学习文档

    - EL表达式则用于动态设置组件的属性值。 以上内容涵盖了ZK学习文档的核心知识点,对于初学者来说,了解这些基础概念是十分重要的。随着对ZK框架的深入了解,开发者将能够利用其强大功能构建出更加复杂和高效的Web...

    ZK框架JSP TAG使用手册

    #### 四、在ZK JSP中使用表达式语言(EL) ##### 引入 EL(Expression Language)是一种简洁的表达式语法,用于在JSP页面中访问JavaBean属性。ZK JSP支持EL的使用,这使得开发者可以在页面上更方便地操作数据。 ###...

    【zk开发】多功能el函数库 zktools.jar

    EL函数库通常是为了方便在Java应用中进行表达式计算和数据处理,它使得开发者能够以简洁的语法执行复杂的逻辑,尤其是在处理Zookeeper数据时。 这个工具的主要功能可能包括但不限于以下几点: 1. **数据查看与操作...

    适合初学者的zk开发文档pdf

    11. **变量解析指令(The variable-resolver Directive)**:指定如何解析变量引用,支持不同的变量解析策略,如EL表达式、JavaBean属性访问等。 #### 结论 对于初学者而言,《ZK: Developer's Reference》是一份...

    ZK开发手册 3.06 Word版

    4. **表达式语言(EL)**:ZK使用一种特殊的表达式语言,允许在XML布局文件中直接进行数据绑定和逻辑处理,增强了模板的动态性。 5. **ZUL文件**:ZK使用ZUL(ZK User Interface Language)作为其标记语言,用于...

    ZK开发手册3.05

    2.5 EL(Expression Language)表达式是Java EE中的一种标准,用于在ZK中动态计算和设置值,简化了数据绑定。 2.6 id属性是每个组件的唯一标识,对于定位和操作组件至关重要。 2.7 if和unless属性提供了条件逻辑,...

    zk developeguide3.5.pdf

    - **EL表达式**:阐述了表达式语言(EL)的基本概念和用法。 - **`id`属性**:解释了标识符(`id`)的重要性及其使用方法。 - **`if`和`unless`属性**:介绍了条件渲染的语法和应用场景。 - **`forEach`属性**:讲解了...

Global site tag (gtag.js) - Google Analytics