##  EL表达式

1、概念:Expression  alnguage  表达式语言

2、作用:替换和简化JSP页面中java代码的编写

3、语法:${表达式}

4、注意:

  *  jsp默认支持EL表达式。如果要忽略EL表达式

    1、设置jsp中,page指令中的isELIgnored="true",忽略当前jsp页面中所有的EL表达式

    2、\${表达式}:忽略当前这个EL表达式

5、使用:

  1、运算

    *  运算符:

      1、算数运算符:+  -  *  /(div)  %(mod)

      2、比较运算符:>  <  >=  <=  ==  !=

      3、逻辑运算符:&&(and)  ||(or)  !(not)

      4、空运算符:empty

      *  功能:用于判断字符串、集合、数组对象是否为null或者长度是否为0

      *  ${empty  list}:用于判断字符串、集合、数组对象是否为null或者长度是否为0

      *  ${not  empty  str}:判断字符串,集合,数组对象是否不为null,且长度>0

  2、获取值

    1、EL表达式只能从域对象中获取值

    2、语法:

      1、${域名城.键名}:从指定域中获取指定键的值

      *  域名称:(从小到大)

        1、pageScope:--->pageContext

        2、requestScope --->request

        3、sessionScope--->session

        4、applicationScope--->application(ServletContext)

      *  举例:在request域中存储了name=张三

      *  获取:${requestScope.name}

      2、${键名}:标识依次从最小的域中查找,是否有该键对应的值,知道找到为止。

      3、获取对象,List集合、Map集合的值

        1、对象:${域名城.键名称.属性名}

          *  本质上会去调用getter方法

package com.ftj.domain;

import java.text.SimpleDateFormat;
import java.util.Date; /**
* 用户实体类javaBean
*/
public class User {
private int id;
private String username;
private String password;
private String gender;
private Date birthday; public Date getBirthday() {
return birthday;
} public void setBirthday(Date birthday) {
this.birthday = birthday;
} public User() {
} public User(int id, String username, String password, String gender) {
this.id = id;
this.username = username;
this.password = password;
this.gender = gender;
} /**
* 逻辑视图
* @return
*/
//格式化时间
public String getBirth() {
if (birthday != null) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
return sdf.format(birthday);
}
return "";
} public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} public String getHehe() {
return gender;
} public void setHehe(String gender) {
this.gender = gender;
} @Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
", gender='" + gender + '\'' +
'}';
}
}
<%@ page import="com.ftj.domain.User" %>
<%@ page import="java.util.Date" %><%--
Created by IntelliJ IDEA.
User: 21seu.ftj
Date: 2020/3/29
Time: 12:36
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
User user = new User();
user.setUsername("ftj");
user.setPassword("123456");
user.setBirthday(new Date());
request.setAttribute("u",user);
%> ${requestScope.u.username}
${requestScope.u.password}
${u.birth} </body>
</html>

        2、List集合:${域名城.键名[索引]}

        3、Map集合:

          *  ${域名城.键名.key名称}

          *  ${域名城.键名["key名称"]}

<%@ page import="com.ftj.domain.User" %>
<%@ page import="java.util.Date" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.HashMap" %><%--
Created by IntelliJ IDEA.
User: 21seu.ftj
Date: 2020/3/29
Time: 12:36
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
User user = new User();
user.setUsername("ftj");
user.setPassword("123456");
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); HashMap map = new HashMap<>();
map.put("sname","李四");
map.put("gendor","男");
request.setAttribute("map",map); %> ${requestScope.u.username}
${requestScope.u.password}
${u.birth}
<hr> ${list}
${list[2].username}
<hr> ${map}
${map.gendor}
${map["gendor"]}
</body>
</html>

  3、隐式对象:

    *  el表达式中有11个隐式对象

    *  pageContext:

      1、获取jsp其他8个内置对象

<%--
Created by IntelliJ IDEA.
User: 21seu.ftj
Date: 2020/3/29
Time: 13:23
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
${pageContext.request}
<%--jsp页面中动态获取虚拟目录--%>
${pageContext.request.contextPath}
</body>
</html>

    

JSP(三)----EL表达式的更多相关文章

  1. JavaWeb学习之JSP(三) EL表达式

    EL表达式 什么是EL表达式   EL,Expression Language,表达式语言,是一种在JSP页面中获取数据的简单方式,通过${变量名}的方式可以获取到值,需要注意的是EL只能从 page ...

  2. 超全面的JavaWeb笔记day12<Jsp&JavaBean&El表达式>

    1.JSP三大指令 page include taglib 2.9个内置对象 out page pageContext request response session application exc ...

  3. JSP的EL表达式语言

    以下内容引用自http://wiki.jikexueyuan.com/project/jsp/expression-language.html: JSP表达式语言(EL)可以方便地访问存储在JavaB ...

  4. MVC实现登录,增删改查之数据展示:JSP的EL表达式(二)

    这里的数据展示利用jsp的EL表达式,后台放入session,前台EL获取 数据库设计是这样的,一个老师对应有多个学生,在学生表student中建立外键tid与老师表teacher的tid对应,现在老 ...

  5. JSP、EL表达式的入门(要用)

    2018-08-12   22:55:23 * JSP.EL表达式的入门(要用)    * Servlet/JSP  是两种动态的WEB资源的两种技术.   * 使用Servlet 生成HTML的页面 ...

  6. jsp中EL表达式不起作用的问题

    jsp中EL表达式不起作用的问题 进行springmvc的@ExceptioinHandler调试,竟然是el表达式的问题, 学习了:http://blog.csdn.net/wolf_soul/ar ...

  7. JSP基础--EL表达式

    EL(表达式语言) 1 EL概述 1.1 EL的作用 JSP2.0要把html和css分离.要把html和javascript分离.要把Java脚本替换成标签.标签的好处是非Java人员都可以使用. ...

  8. Java Web技术之JSP与EL表达式

    1,jsp是用来干嘛的? JSP技术是用来解决在Servlet中需要书写大量的拼接html标签.以及框架的代码 2,jsp的三种脚本元素 a.JSP的脚本声明(定义) 格式: <%! 书写Jav ...

  9. JSP和El表达式和JSTL标签库使用

    核心标签库: <%@ page language="java" import="java.util.*" pageEncoding="utf-8 ...

  10. JSP入门 el表达式

    我们已经知道el是jsp-2.0规范的一部分,tomcat-5.x版本以上都已经能够支持jsp-2.0规范,但在更低版本的tomcat和webphere,weblogic中还是无法使用这一便捷方式. ...

随机推荐

  1. React中key的讲解

    通过阅读React的文档我们知道React这个框架的核心思想是,将页面分割成一个个组件,一个组件还可能嵌套更小的组件,每个组件有自己的数据(属性/状态);当某个组件的数据发生变化时,更新该组件部分的视 ...

  2. 新财报再次巨亏 HTC还能活到2017吗?

    HTC还能活到2017吗?" title="新财报再次巨亏 HTC还能活到2017吗?"> 当下智能手机行业虽然竞争惨烈,但也称得上是精彩纷呈:性能.外形不断进化, ...

  3. jQuery学习笔记三

    使用fadeIn()js解释器会将所选元素的CSS opacity属性从0改为100,fadeTo()会动画显示所选元素,将它为改为某个特定的透明度百分比,使用fadeOut()js解释器会将所选元素 ...

  4. 使用python抓取美团商家信息

    抓取美团商家信息 import requests from bs4 import BeautifulSoup import json url = 'http://bj.meituan.com/' ur ...

  5. 微信小程序中图片上传阿里云Oss

    本人今年6月份毕业,最近刚在上海一家小公司实习,做微信小程序开发.最近工作遇到一个小问题. 微信小程序图片上传阿里云服务器Oss也折腾了蛮久才解决的,所以特意去记录一下. 第一步:配置阿里云地址: 我 ...

  6. win10执行Tensorflow,总是会报错“DLL load failed: 找不到指定的模块”的解决方式----终极版方式

    win10上运行tensorflow时报错,“DLL load failed: 找不到指定的模块”的解决方式 我只想说,当你们遇到这个问题的时候,以下终极版的方式出来了,非常感谢知乎 leo lv ! ...

  7. 看逐浪CMS技术小哥做SVG动画(附使用Bodymovin和Lottie将Adobe After Effects(AE)程式转为 HTML5/Android/iOS原生的动画全过程-即AE转svg\canvas\html5动画)

      名词解解释 adobe After Effects AE:adobe After Effects,adobe公司的专业视频制作软件. Bodymovin插件预览 Bodymovin:是一个AE的插 ...

  8. IntelliJ IDEA 2020 全家桶注册码

    WU78YHTY7E-eyJsaWNlbnNlSWQiOiJPUVQzT0oyNVhFIiwibGljZW5zZWVOYW1lIjoi5rC45LmF5r+A5rS7IGlkZWEubWVkZW1pb ...

  9. 微信小程序用setData修改数组或对象中的一个属性值,超好用,最简单的实现方法,不容错过!大神们 都 在 看 的方法!!!

    在page中 data: { info: [{ name: "yuki", tou: "../img/head.jpg", zGong: 130, gMoney ...

  10. R语言实战(一) R语言介绍

    从2018年秋季(大二上学期)开始接触R语言,曾在2019年寒假读过一遍本书的第一版,感觉受益匪浅,之后遇到问题也曾回头来查阅这本书,前几天刚学习过Simulink,趁现在有空再来温习这本书,回顾一下 ...