Chinaunix首页 | 论坛 | 博客
  • 博客访问: 38448
  • 博文数量: 21
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 195
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-08 22:29
文章分类

全部博文(21)

文章存档

2010年(21)

我的朋友
最近访客

分类: Java

2010-01-08 23:23:28

  1. EL 表达式的格式是这样的:用美元符号({ })中
  2. 组合静态文本和多个 EL 表达式以指定动态属性值

      
  3. 存取器       EL 提供了两种不同的存取器(点运算符(.)和方括号运算符([])),也支持通过           EL 操作特性和元素
  4. 点运算符通常用于访问对象的特性:例如,在表达式 ${ user.firstName} 中,使用点运算符来访问 user 标识符所引用对象的名为 firstName 的特性。EL 使用 Java bean 约定访问对象特性,因此必须定义这个特性的 getter 方法(通常是名为 getFirstName() 的方法),以便表达式正确求值。当被访问的特性本身是对象时,可以递归地应用点运算符。例如,具有city属性的address对象是user对象的属性,,表达式 ${ user.address.city} 将会返回这个地址对象嵌套的 city 特性。
  5. 方括号运算符用来检索数组和集合的元素。在数组和有序集合(也即,实现了 java.util.List 接口的集合)的情况下,把要检索的元素的下标放在方括号中。例如,表达式 ${ urls[3]} 返回 urls 标识符所引用的数组或集合的第四个元素(和 Java 语言以及 JavaScript 中一样,EL 中的下标是从零开始的)。
  6. 对于实现 java.util.Map 接口的集合,方括号运算符使用关联的键查找存储在映射中的值。在方括号中指定键,并将相应的值作为表达式的值返回。例如,表达式 ${ commands["dir"]} 返回与 commands 标识符所引用的 Map 中的 "dir" 键相关联的值。
  7. 点运算符和方括号运算符还可以互操作。例如,如果数组的元素本身是对象,则可以使用方括号运算符来检索该数组的元素,并结合点运算符来检索该元素的一个特性(例如 ${ urls[3].protocol})。
  8. 点运算符和方括号运算符可能实现某种程度的互换。例如,也可以使用 ${ user["firstName"]} 来检索 user 对象的 firstName 特性,正如可以用 ${ commands.dir} 获取与 commands 映射中的 "dir" 键相关联的值一样。
  9. 运算符     

    算术运算符  +、-、*、/(或 div)和 %(或 mod) 
    关系运算符  ==(或 eq)、!=(或 ne)、<(或 lt)、>(或 gt)、<=(或le)和 >=(或 ge)
    逻辑运算符  &&(或 and)、||(或 or)和 !(或 not)
    验证运算符  empty
  10.  利用算术运算符的 EL 表达式
    ${item.price * (1 + taxRate[user.address.zipcode])}
  11.  利用关系和逻辑运算符的 EL 表达式:关系运算符允许比较数字或文本数据。比较的结果作为布尔值返回
    ${(x >= min) && (x <= max)}
  12. 运算符 empty:验证数据,empty 运算符采用单个表达式作为其变量(也即,${ empty input}),并返回一个布尔值,该布尔值表示对表达式求值的结果是不是“空”值。求值结果为 null 的表达式被认为是空,即无元素的集合或数组。如果参数是对长度为零的 String 求值所得的结果,则 empty 运算符也将返回 true。
  13.  EL 运算符优先级(自顶到底,从左到右)
    [], . 
    () 
    unary -、not、!、empty 
    *、/、div、%、mod 
    +、binary - 
    () <、>、<=、>=、lt、gt、le、ge 
    ==、!=、eq、ne 
    &&、and 
    ||、or
  14. 文字值:   在 EL 表达式中,数字、字符串、布尔值和 null 都可以被指定为文字值。字符串可以用单引号或双引号定界。布尔值被指定为 true 和 false。
  15. Taglib(伪指令):用于 JSTL core 库 EL 版本的 taglib 伪指令
    <%@ taglib uri="" prefix="c" %>
  16. 对应于 JSTL core 库的 taglib 伪指令有两种:
  17. 用于 JSTL core 库 RT 版本的 taglib 伪指令
    <%@ taglib uri="_rt" prefix="c_rt" %>
  18. 变量标记:

JSTL 定制标记是 操作: 操作提供基于标记的机制来创建和设置限制了作用域的变量,其中 var 属性指定了限制了作用域的变量的名称,scope 属性表明了该变量驻留在哪个作用域中,value 属性指定了分配给该变量的值。如果指定变量已经存在,则简单地将所指明的值赋给它。如果不存在,则创建新的限制了作用域的变量,并用该值初始化这个变量。scope 属性是可选的,其缺省值是 page, 操作的语法

操作示例


 通过主体内容指定 操作的值

CST

操作是用来删除限制了作用域的变量的,它获取两个属性。var 属性指定待删除变量的名称,scope 属性是可选的,它表示待删除变量来自哪个作用域,缺省为 page.

输出:该标记对由其 value 属性指定的表达式进行求值,然后打印结果。如果指定了可选属性 default,那么,在对 value 属性的表达式求值所得结果为 null 或空 String 的情况下, 将打印其值.

操作的语法

escapeXml 属性也是可选的。它控制当用 标记输出诸如“<”、“>”和“&”之类的字符(在 HTML 和 XML 中具有特殊意义)时是否应该进行转义。如果将 escapeXml 设置为 true,则会自动将这些字符转换成相应的 XML 实体(此处提到的字符分别转换成 <、> 和 &)。
带缺省内容的 操作示例 Hello

禁用转义的 操作示例
合并 以提供缺省变量值

   
阅读(440) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~