JSP之el表达式

EL(Expression Language) 是为了使JSP写起来更加简单。

1、语法结构
  ${expression}
2、"[ ]"与"."运算符
  > EL 提供“.“和“[ ]“两种运算符来存取数据。
  > 当要存取的属性名称中包含一些特殊字符,如 . 或 - 等并非字母或数字的符号,就一定要使用“[ ]“。例如:
     ${ user. My-Name}应当改为${user["My-Name"]}
  > 如果要动态取值时,就可以用“[ ]“来做,而“.“无法做到动态取值。例如:
     ${sessionScope.user[data]}中data 是一个变量
3、变量
  > EL存取变量数据的方法很简单,例如:${username}。
     它的意思是取出某一范围中名称为username的变量。
          因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、Application范围查找。
          假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null。
4、举例说明
  > < %=request. getParameter(“username”)% > 等价于 ${ param. username }
   但是username为null时,前者在页面渲染时显示为null,el表达式渲染时,不现实任何内容;
   这种情况是由于servlet往jsp传参属于HttpRequest所以就是request作用域;
  > <%=request.getAttribute(“userlist”) %> 等价于$ { requestScope.userlist }
   getAttribute使用前,需要setAttribute,同时设置响应的作用域:从小→大,执行顺序,即从小的作用往大的作用域找userlist的对象
   page作用域<------------->${pageScope.userlist}
   request作用域<------------->${requestScope.userlist}
   session作用域<------------->${sessionScope.userlist}
   application作用域<------------->${applicationScope.userlist}
  >  <%=user.getAddr( ) %> 等价于 ${user.addr}
           第一句前面的user,为一个变量。
           第二句后面user,必须为在某一个范围里的属性。
5、特别强调
  >  注意当表达式根据名称引用这些对象之一时,返回的是相应的对象而不是相应的属性
   例如:即使现有的 pageContext 属性包含某些其他值,${pageContext} 也返回 PageContext 对象。
   注意 <%@ page isELIgnored="true" %> 表示是否禁用EL语言,TRUE表示禁止,FALSE表示不禁止。JSP2.0中默认的启用EL语言。
Page PageScope
Request RequestScope
Session SessionScope
Application ApplicationScope

posted on 2017-09-13 20:17  剑姬  阅读(143)  评论(0编辑  收藏  举报

导航