EL表达式

试用EL表达式和JSTL的基本思路:通过EL替代java语法,使之简化并削弱jsp小脚本的过分强大功能;通过JSTL的XML格式的声明语法,替代java程序语法,使复杂的控制逻辑简化。

------------------------------------------------------------------------------------------------------

EL :Expression Language 表达式语言。用在JSP里面。作用:尽量消除JSP中的java代码。
语法:  ${expr}

el中的一个操作empty,用来对一个空变量值进行判断:null,一个空String,空数组,空Map,没有条目的集合。

${empty param.username}   进行空值的检查。

一些操作的名称:<(lt)  >(gt)  <=(le)   >=(ge)  ==(eq)  !=(ne)

大多数 情况下,缺失的值或者NullPointerException会导致空串,而不是抛出异常或者显示null。


EL的默认对象:
   作用域对象, pageScope、requestScope、 sessionScope、 applicationScope
   页面对象 pageContext

   参数访问对象  param           相当于request.getParameter("");
                          paramValues     相当于request.getParameterValues("");
   HTTP请求头部信息对象:header、headerValues、 cookie

   初始化参数: initPage

   例如 ${param.username}   ${paramValues.interest[3]}

           ${sessionScope.user.sex}  相当于 User user =(User)session.getAttribute("user");
           String sex = user.getSex();

EL提供.和[]两种运算符来存取数据。
      sessionScope.user.sex 和sessionScope.user["sex"]一样
两者差异:
  主要的
  ${sessionScope.user[data]}
  此时,data是一个变量,假若data的值为"sex"时,那就相当于是${sessionScope.use.sex}
  假若data的值是"name"时,它就等于${sessionScope.user.name}
  因此,如果要动态取值时,就可以用上述的方法来做。但.无法做到动态取值。
  次要的:
   当属性名称中包含一些特殊字符,如.或-等并非字母或数字的符号,就一定要使用[]。例如:
      ${user.My-name}是不正确的,应当改为${user["My-name"]}。

 

EL存取变量数据的方法很简单,例如${username}。它的意思是取出某一范围中名称为username的变量。因为我们并没有指定哪一个范围的username,所有它的默认值会先从Page范围找,假如找不到,再依次从request,session,application范围找,如果中途找到就直接回传,不再继续找下去,假如全部的范围都没有找到,就回传null。

 

EL提供了自动类型转换 ${param.count+20},会将传来的count转换成int,然后再相加,而不是把20添加到字符串上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值