Jsp2.0最重要的特性就是表达式语言EL。jsp用户可以用它来访问应用程序数据。
EL表达式以${开头并以}结束。
${expresion} ${x+y}
它也常用来连接两个表达式,取值将从左到右进行,计算结果为String。 加入a+b等于8,c+d等于10,则两个表达式的计算结果为810 ${a+b}${c+d}
表达式${a+b}and${c+d}的取值结果则为8and10
如果在定制标签的属性值中使用EL表达式,那么表达式的取值结果将会强制变成该属性需要的类型: <my:tag someAttribute="${expression}"/>
${这样的字符顺序标识的就是一个EL表达式的开头,如果需要文本${则加个转义字符 \${
关键字:
以下是关键字,它们不能用来做标识符:
and eq gt true instanceof
or ne le false empty
not It ge null div mod
[]和.运算符:
EL表达式可以返回 任意 类型的值。如果EL表达式的结果是一个带有属性的对象,则可以利用[]或.运算来访问改属性。 这两种运算类似,前者更加规范,后者更加简洁。
${object["propertyName"]} ${object.propertyName}
但是如果propertyName不是有效的Java变量名,则只能使用[]运算符。 例如下面这个EL表达式就可以用来访问隐式对象标题中的HTTP标题的host
${header[host]} ${header.host}
但是想要访问accept-language标题,则只能用[]运算符,因为accept-language不是个合法的Java变量名。
访问JavaBean:
${beanName["propertyName"]} ${beanName.propertyName}
EL隐式对象:
在jsp页面中可以利用jsp脚本来fagnwenjsp隐式对象,但是在免脚本的jsp页面中则不能访问这些隐形对象。EL允许通过一组它自己的隐式对象来访问不同的对象。
像pageContext对象,这个隐式对象厉害了,包含了所有的其他jsp隐式对象。${pageContext.request.mehtod} ${pageContext["request"]["method"]} 这样就可以获取请求方法。
……
……还有贼多
EL还有很多其他运算符,就一些正常的运算符,但用处比较有限。