JAVAWEB中的EL用法

来源:互联网 发布:日本人茶点的知乎 编辑:程序博客网 时间:2024/05/16 11:44

  今天我们来讲一讲Javaweb中的EL的用法。

  1.EL

  ① EL:全名称是Expression Language,即表达式语言。这种语言的特点就是相当于不断的先去调用当前JSP中隐含对象的getXxx(不带参)的方法,再去调用其中属性的getXxx()方法,从而获取最终的属性值

  ② 语法是:${隐含对象.属性.属性}。其功能作用相当于Java表达式:<%=User user = (User)session.getAttribute("user")  out.print(user)%>,即先从域对象中获取到这个属性值,然后再将其输出到浏览器的页面上。

  需要注意的是:有时候属性中会带有特殊字符,如.或者-,此时可以换用间括号的方式:${session["com.liucc"].name}

  2. EL存取数据的规则

  当我们不写域对象而直接在${}中写属性时,EL的查询规则是按照page->request->session->application范围从小到大一次的从这四个域对象中查找,知道找到则返回,若未找到则返回Null。

  3.EL的自动类型转换

  通过EL的${}这种形式的获取域对象中的属性,属性的类型可以自动的完成转换,如:${param.name+11}得到一个数字,即EL表达式中从域对象中获得的值完成了自动类型转换;而<%=requset.getParamter("name")+11%>返回的是xxx11,即在Java表达式中获取的域对象中的值变成了字符串。所以,只要通过EL获取的属性一直存在,那么就可以调用其无参的getXxx()方法一直下去,而使用Java表达式因为返回的是字符串类型,那么就无法直接调用getXxx()方法下去,因为还要将获得的字符串进行强转。

  4.EL中各种隐含对象的详解

  ① 与范围有关的隐含对象

  pageScope:代表page这个隐含对象,这个page隐含对象是指代当前JSP生成的Servlet的对象。

  requestScope:代表request这个隐含对象。

  sessionsCope: 代表session这个隐含对象。

  applicationScope:代表application这个隐含对象。

  需要注意的是:这四个与范围有关的隐含对象仅仅可以读取其中的属性值,而不可以操作,即仅仅可以getAttribute()。

  ② 与输入参数有关的隐含对象

  param:这个隐含对象可以获取请求参数。

  paramValues:这个隐含对象可以获取一组请求参数。如:${paramValues.name[0]},需要注意的是EL本身无法完成遍历,需要借助于JSTL才可以。

  ③ 其他隐含对象

  cookie、header、initParam(可以获取当前web.xml中的初始化参数)、
  pageContent:这个隐含对象可以获取到许多内容,代表着当前JSP的上下文。如获取contextPath和sessionID等,很重要因为它除了可以获取域对象中的属性之外,还可以通过他在EL表达式中获取许多其他的内容

  5.EL的运算符

  ① 算术运算符:加减乘除取余

  ② 逻辑运算符:且或反

  ③ 关系运算符:大小判断

  ④ 其他运算符:if如三目运算符   ()括号可以改变运算的优先级

  empty运算符:可以智能的判断集合,若集合不存在或者集合中的元素为空,那么就返回true;反之为false。













90















 

 

 

原创粉丝点击