免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2595 | 回复: 0
打印 上一主题 下一主题

JSTL入门:表达式(常用) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-01-08 23:23 |只看该作者 |倒序浏览

  • EL 表达式的格式是这样的:用美元符号({ })中
  • 组合静态文本和多个 EL 表达式以指定动态属性值
      
  • 存取器       EL 提供了两种不同的存取器(点运算符(.)和方括号运算符([])),也支持通过           EL 操作特性和元素
  • 点运算符通常用于访问对象的特性:例如,在表达式 ${ user.firstName} 中,使用点运算符来访问 user 标识符所引用对象的名为 firstName 的特性。EL 使用 Java bean 约定访问对象特性,因此必须定义这个特性的 getter 方法(通常是名为 getFirstName() 的方法),以便表达式正确求值。当被访问的特性本身是对象时,可以递归地应用点运算符。例如,具有city属性的address对象是user对象的属性,,表达式 ${ user.address.city} 将会返回这个地址对象嵌套的 city 特性。
  • 方括号运算符用来检索数组和集合的元素。在数组和有序集合(也即,实现了 java.util.List 接口的集合)的情况下,把要检索的元素的下标放在方括号中。例如,表达式 ${ urls[3]} 返回 urls 标识符所引用的数组或集合的第四个元素(和 Java 语言以及 JavaScript 中一样,EL 中的下标是从零开始的)。
  • 对于实现 java.util.Map 接口的集合,方括号运算符使用关联的键查找存储在映射中的值。在方括号中指定键,并将相应的值作为表达式的值返回。例如,表达式 ${ commands["dir"]} 返回与 commands 标识符所引用的 Map 中的 "dir" 键相关联的值。
  • 点运算符和方括号运算符还可以互操作。例如,如果数组的元素本身是对象,则可以使用方括号运算符来检索该数组的元素,并结合点运算符来检索该元素的一个特性(例如 ${ urls[3].protocol})。
  • 点运算符和方括号运算符可能实现某种程度的互换。例如,也可以使用 ${ user["firstName"]} 来检索 user 对象的 firstName 特性,正如可以用 ${ commands.dir} 获取与 commands 映射中的 "dir" 键相关联的值一样。
  • 运算符      
    算术运算符  +、-、*、/(或 div)和 %(或 mod)
    关系运算符  ==(或 eq)、!=(或 ne)、(或 lt)、>(或 gt)、=(或 ge)
    逻辑运算符  &&(或 and)、||(或 or)和 !(或 not)
    验证运算符  empty
  • 利用算术运算符的 EL 表达式
    ${item.price * (1 + taxRate[user.address.zipcode])}
  •  利用关系和逻辑运算符的 EL 表达式:关系运算符允许比较数字或文本数据。比较的结果作为布尔值返回
    ${(x >= min) && (x
  • 运算符 empty:验证数据,empty 运算符采用单个表达式作为其变量(也即,${ empty input}),并返回一个布尔值,该布尔值表示对表达式求值的结果是不是“空”值。求值结果为 null 的表达式被认为是空,即无元素的集合或数组。如果参数是对长度为零的 String 求值所得的结果,则 empty 运算符也将返回 true。
  • EL 运算符优先级(自顶到底,从左到右)
    [], .
    ()
    unary -、not、!、empty
    *、/、div、%、mod
    +、binary -
    () 、>、=、lt、gt、le、ge
    ==、!=、eq、ne
    &&、and
    ||、or
  • 文字值:   在 EL 表达式中,数字、字符串、布尔值和 null 都可以被指定为文字值。字符串可以用单引号或双引号定界。布尔值被指定为 true 和 false。
  • Taglib(伪指令):用于 JSTL core 库 EL 版本的 taglib 伪指令

  • 对应于 JSTL core 库的 taglib 伪指令有两种:
  • 用于 JSTL core 库 RT 版本的 taglib 伪指令
  • 变量标记:
    JSTL 定制标记是  操作: 操作提供基于标记的机制来创建和设置限制了作用域的变量,其中 var 属性指定了限制了作用域的变量的名称,scope 属性表明了该变量驻留在哪个作用域中,value 属性指定了分配给该变量的值。如果指定变量已经存在,则简单地将所指明的值赋给它。如果不存在,则创建新的限制了作用域的变量,并用该值初始化这个变量。scope 属性是可选的,其缺省值是 page, 操作的语法
    操作示例
    通过主体内容指定  操作的值
    CST
    操作是用来删除限制了作用域的变量的,它获取两个属性。var 属性指定待删除变量的名称,scope 属性是可选的,它表示待删除变量来自哪个作用域,缺省为 page.
    输出:该标记对由其 value 属性指定的表达式进行求值,然后打印结果。如果指定了可选属性 default,那么,在对 value 属性的表达式求值所得结果为 null 或空 String 的情况下, 将打印其值.
    操作的语法
    escapeXml 属性也是可选的。它控制当用  标记输出诸如“”和“&”之类的字符(在 HTML 和 XML 中具有特殊意义)时是否应该进行转义。如果将 escapeXml 设置为 true,则会自动将这些字符转换成相应的 XML 实体(此处提到的字符分别转换成  和 &)。
    带缺省内容的  操作示例 Hello
    禁用转义的  操作示例
    合并  和  以提供缺省变量值
       


    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/109937/showart_2144182.html
  • 您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP