本文共 1037 字,大约阅读时间需要 3 分钟。
- El表达式中是 用大括号起,而且前面有一个$前缀:${expression}.
- 表达式中第一个命名变量要么是一个隐式对象,要么是 某个作用域
- 点号操作允许你使用一个MAP键或者一个bean性质名来访问值,在此,bar是mapfoo的Map键名,或者是bean foo的 一个性质。放在点号操作符右边的东西必遵循Java的表示符命名规则!
- 点号 右边只能放合法的java标识符。列如,${foo.1}就不可。
- []操作符比点号功能更强大, 因为利用[]可以访问数组和List,可以把包含命名变量的表达式放在中括号里,而且可以做任意层次的嵌套,只要你受得了。
- 如果musicList是一个ArrayList,可以用${musicList[0]}或${musicList["0"]}来访问列表中的第一个值。EL并不关心列表索引加不加引号。
- 如果中括号里的内容没有用引号引起来,容器就会进行计算。如果确实放在引号里,而且不是一个数组或list的索引,容器就会把它看作是性质或键的直接量名
- 除了一个EL隐式对象(PageContext)外,其他EL隐式对象都是Map。从这些Map隐式对象可以得到任意4个作用域中的属性,请求参数值,首部值,cookie值和上下文初始化参数。非映射的隐式对象是pageContext,它是PageContext对象一个引用。
- 不要把隐式EL作用域对象与属性所绑定的对象混淆。换句话说不要把requestScope隐式对象与具体的JSP隐式对象request混淆。访问请求对象只有一条路,这就是通过pageContext隐式对象来访问
- EL允许你调用一个普通java类中的公共静态方法。函数名不一定与具体的方法名匹配!例如,${foo:rollIt()}并不意味着包含函数的类中肯定有一个名为rollIt()的 方法。
- 使用一个TLD将函数名(例如rollIt())映射到 一个具体的静态方法。使用<function>元素声明一个函数,包括函数的<name>(rollIt()),完全限定类<function-class>以及<function-signature>,其中包括返回类型以及方法名和参数表
- 要在JSP中使用函数,必须使用taglib指令声明一个命名空间。在taglib指令中放一个prefix属性,告诉容器你要的函数在TLD里能找到。例如:<%@ taglib prefix=“mine” uri="/WEB-INF/foo.tld" %>
转载地址:http://ksesi.baihongyu.com/