JSP中的EL表达式详细介绍
1、语法结构
${expression}
${param.username}
等价于: request.getParameter("username")
2、[ ]与.运算符
EL 提供“.“和“[ ]“两种运算符来存取数据,即可以使用这两种方法访问bean属性。
${user.My-Name}应当改为${user["My-Name"] }
如果要动态取值时,就可以用“[ ]“来做,而“.“无法做到动态取值。例如:
${sessionScope.user[data]}中data 是一个变量
3、变量
EL存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。
因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、Application范围查找。
假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null。
属性范围···········································在EL中的名称
Page···················································PageScope
Request·············································RequestScope
Session··············································SessionScope
Application·······································ApplicationScope
如果要指定查找的范围,可以使用
pageScope,requestScope,sessionScope,applicationScope。
${requestScope.user.name}
4、进行一些简单的计算,计算结果可以直接输出,或者给jsp标签赋值。注意”+”法操作不能够进行字符串的连接操作
5、jstl标签
@1、if标签: 当test属性值为true时,执行标签体的内容。
test属性:经常使用el表达式来赋值。
var属性:指定一个绑订名称。
cope属性:指定绑订的范围(page,request,session,application)
<c:if test="" var="" scope="">
标签体
</c:if>
@2、choose标签:多个分支,when标签可以出现多次,但是otherwise最多只能出现1次,otherwise表示例外。
<c:choose>
<c:when test=""></c:when>
...
<c:otherwise></c:otherwise>
</c:choose>
@3、forEach标签:对一个集合进行遍历
<c:forEach items="" var="" varStatus="">
</c:forEach>
items属性:指定要遍历的集合,一般使用el表达式。
var属性:指定绑订名称,绑订范围是pageContext。
varStatus属性:指定绑订名称,绑订范围是pageContext,绑订值是一个由容器创建的对象,该对象封装了当前遍历的状态,比如提供getIndex(),getCount()。
6、el保留的关键字
and(与) eq(等于) gt(大于)
true
instanceof
div(除) or(或||) ne(不等于) le(小于等于)
false
empty mod(求余) not(非!) lt(小于) ge(大于等于)