##  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. Swift 浅谈Struct与Class

    讨论Struct与Class之前,我们先来看一个概念:Value Type(值类型),Reference Type(引用类型): 1. 值类型的变量直接包含他们的数据,对于值类型都有他们自己的数据副本 ...

  2. Python-rediscluster客户端

    # -*- coding: UTF-8 -*- import redis import sys from rediscluster import StrictRedisCluster #host = ...

  3. Mac系列萎靡 大棒能否敲醒苹果?

    大棒能否敲醒苹果?" title="Mac系列萎靡 大棒能否敲醒苹果?">     iPhone在智能手机市场中的一骑绝尘,不断将苹果推向神坛位置.即使新品更新幅度 ...

  4. SIM卡的消失会让运营商们恐慌吗?

    ​中国移动.联通.电信三大运营商原本高高在上,每天乐滋滋地数钱数到手抽筋,但近年来移动互联网的快速普及,让运营商的制霸状态不复存在.成为众多互联网公司的"流量通道",语音.短信等业 ...

  5. 用PHP实现的快速排序算法(支持记录原始数组下标)

    代码如下 <?php /** * 快速排序 */ define("MAX_LENGTH_INSERT_SORT", 7); class QuickSort { /** * 交 ...

  6. 新浪微博PC端登录分析

    本来给自己定了个2018的目标,平均每月写两篇文章,现在已经快三月了,第一篇稿子才憋出来,惭愧呀,直入主题吧,今天给大家带来的是新浪微博PC端的模拟登陆. 工具 这次使用的工具是Charles和chr ...

  7. Web中间件常见漏洞总结

    一.IIS中间组件: 1.PUT漏洞 2.短文件名猜解 3.远程代码执行 4.解析漏洞 二.Apache中间组件: 1.解析漏洞 2.目录遍历 三.Nginx中间组件: 1.文件解析 2.目录遍历 3 ...

  8. 2019年后,Java岗面试快速突击指南

    大家好.这篇文章给大家分享一下如何获得一个可以去参加面试的最小可行知识(Minimal Viable Knowledge)!我自己在就基本上靠文章中的策略在找实习的时候拿到了头条阿里的offer.所以 ...

  9. SVN版本控制说明与相关指令

    SVN版本控制说明 目的 多个版本中并行开发,提高开发效率: 保证各个版本和各个环境(开发.测试.主干)的独立,避免相互影响: 通过分支与主干的合并,这样主干永远是最新.最高版本,并且都在后面的测试中 ...

  10. AWS EC2+Docker+JMeter构建分布式负载测试基础架构

    目录 概述及范围 前提条件 Part 1: Local setup-本地配置 Part 2: Cloud端基础架构--Infrastructure 总结: 原文链接 @ 概述及范围 本文介绍有关如何使 ...