EL表达式笔记

是什么?

  • Expression Language(表达式语言)

  • 可以代替JSP中的java代码,让JSP程序看起来更加整洁、美观

  • EL表达式归属于JSP

作用

1、从某个作用域里面取数据

  • pageContext

  • request

  • session

  • application

2、将取出的数据转换成字符串

  • 如果是一个对象,可以自动调用java对象的toString方法将其转换成字符串

3、将字符串输出到浏览器

使用

创建一个Users对象

 Users user = new Users();

取出对象,并将其显示在浏览器上

 <%=request.getAttribute("user")%>
 ${user}
 ${user.name}
 ${user.age}
  • 从域中取出数据,取出user对象,然后调用user的toString()方法,转换成字符串,输出到浏览器。

  • 并且属性可以直接调用,但是前提必须有get方法。

面试题:

${abc}和${"abc"}的区别是什么?

${abc}是表示从某个域中取数据,并且这个数据的名字是abc ${"abc"}表示直接将“abc”当作字符串直接输出到浏览器

取数据的域的顺序

  • 在没有指定范围的情况之下,优先从小范围中取数据

  • pageContext<request<session<application

指定范围来读取数据

 ${pageScope.user}
 ${requestScope.user}
 ${sessionScope.user}
 ${applicationScope.user}

对NULL进行了预处理

如果取不到数据就会显示空白

 ${name}---><%=request.getAttribute("name") == null?"":request.getAttribute("name")%>

两种取数据的形式

[ ] :name中含有特殊字符,可以使用[ ]

. :大部分使用这种方式

取Map集合中的数据:

 <%
     Map<String,String> map = new HashMap<>();
     map.put("username","zhangsan");
     map.put("password","123");
     
     request.setArrtibute("usermap",map);
     
     Map<String,User> map1 = new HashMap<>();
     User user = new User();
     user.setname("lisi");
     map1.put("usermap1",user);
     request.setArrtibute("usermap1",map1);
 %>
 ​
 ${map.key}
 ${usermap.username}
 ${usermap["username"]}
 ${usermap.password}
 ${usermap["password"]}
 ​
 ${usermap1.user.username}

取数组中的数据:

 String[] usernames  = {"zs","ls"};
 request.setArrtibute("userarrs",usernames);
 ​
 ${userarrs[1]}
 ​
 User u1 = new User();
 u1.setUsername("zs");
 User u2 = new User();
 u2.setUsername("ls");
 User[] users = {u1,u2};
 request.setArrtibute("userarrs1",users);
 ​
 ${userarrs1[0].username}

忽略EL表达式

  • 在<@page > 标签中添加属性 isELIgnored = "true"

  • 在EL表达式前面添加\ \${username}

获取应用的根

 ${pageContext.request.contextPath}

EL表达式中的其他隐式对象

  • param

     获取的是请求参数一维数组当中的第一个元素
     用户名:<%=request.getParameter("name")%>
     用户名:${param.name}
  • paramValues

     爱好:${paremVlaues.hobby[0]}、${paremVlaues.hobby[0]}、${paremVlaues.hobby[0]}
  • initParam

     web.xml
     <context-param>
         <param-name>pageNum</param-name>
         <param-value>5</param-value>
     </context-param>
     <context-param>
         <param-name>pageSize</param-name>
         <param-value>10</param-value>
     </context-param>
     ​
     每页的记录条数:${initParam.pageSize}<br>
     页码${initParam.pageNum}
     ​
  • pageContext

运算符

  • 算数运算符

    = + - * / %

    +号 运算符只能求和,不会字符串拼接,转换不成数字的话就会报错(Java.lang.NumberFormatException)

     ${10+"20"}------>30
  • 关系运算符

    == != > >= <= eq

  • 逻辑运算符

    ! && || not and or

  • 条件运算符

    ? :

  • 取值运算符

    [ ] .

  • empty 运算符

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值