程序员社区

【JSP-0】EL表达式

1.概念:Expression Language表达式语言
2.作用:替换和简化jsp页面中java代码的编写
3.语法:${表达式}
4.注意:jsp默认支持el表达式,如果想忽略el表达式:
 1.配置jsp中page指令:isElIgnore = "true"忽略当前jsp页面的所有el表达式
 2.\${表达式}:忽略当前这个El表达式
5.使用:
 1.运算
  1.算术运算符:+ - * 、 %
  2.比较运算符:> < = >= <= !=
  3.逻辑运算符:&& || !
  4.空运算符:empty
   ${empty list}:判断字符串,集合,数组对象是否为null并且长度是否为0
   ${not empty str}:判断字符串,集合,数组对象是否不为null并且长度大于0
 2.获取值
  1.el表达式只能从域对象中获取值
  2.语法:
   1.${域名称.键名}:从指定域中获取指定键的值
    域名称:
    1.pageScope-------->pageContext
    2.requestScope ---->request
    3.sessionScope----->sesssion
    4.applicationScope->application(ServletContext)
    举例:在request域中存储了name=张三
    获取:${requestScope.name}
   2.${键名}:依次从最小的域中查找是否有该键对应的值,直到找到为止
   3.获取值为对象,list集合,Map集合的值
    1.对象:${域名称.键名称.属性名}:本质上会去调用getter方法
    2.list集合:${域名称.键名[索引]}
    3.Map集合:${域名称.键名}${域名称["key名称"]}
 3.隐式对象:el表达式中共有11个隐式对象
  pageContext:获取jsp其他八个内置对象
  ${pageContext.request.contextPath()}:获取虚拟目录
  
运算:

<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h3>算术运算符</h3>
${3+4}<br>
${3/4}<br>
${3 div 4}<br>
${3%4}<br>
${3 mod 4}<br>

<h3>比较运算符</h3>
${3==4}<br>

<h3>逻辑运算符</h3>
${3>4 && 4>5}

<h3>空运算符</h3>
<%
    String str = "abc";
    request.setAttribute("str",str);

    List list = new ArrayList();
    request.setAttribute("list",list);
%>
${not empty str}
</body>
</html>

从指定域中获取指定键的值:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
    //在域中存储数据
    request.setAttribute("name","张三");
    session.setAttribute("name","李四");
    session.setAttribute("age","23");

%>
<h3>获取值1</h3>
${requestScope.name}
${sessionScope.age}

<h3>获取值2</h3>
${name}
${sessionScope.name}
</body>
</html>

获取值为对象,list集合,Map集合的值:

<%@ page import="domain.User" %>
<%@ page import="java.util.*" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

<%
    User user = new User();
    user.setName("张三");
    user.setAge(23);
    user.setBirthday(new Date());
    request.setAttribute("u",user);

    List list = new ArrayList();
    list.add("aaa");
    list.add("bbb");
    list.add(user);
    request.setAttribute("list",list);

    Map map = new HashMap();
    map.put("sname","蒋辉");
    map.put("gender","男");
    map.put("user",user);
    request.setAttribute("map",map);

%>

<h3>el获取对象的值</h3>
${requestScope.u}<br>
<%--通过对象的属性来获取--%>
${requestScope.u.name}<br>
${u.age}<br>
${u.birthday.month}<br>
${u.bitStr}<br>

<h3>el获取list集合的值</h3>
${list}<br>
${list[0]}<br>
${list[1]}<br>
${list[2].name}

<h3>获取map集合的值</h3>
${map}<br>
${map.gender}<br>
${map["gender"]}<br>
${map.user.name}<br>
</body>
</html>

赞(0) 打赏
未经允许不得转载:IDEA激活码 » 【JSP-0】EL表达式

相关推荐

  • 暂无文章

一个分享Java & Python知识的社区