##  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. Promise 的含义

    Promise 的含义 Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大.它由社区最早提出和实现,ES6 将其写进了语言标准,统一了用法,原生提供了Pro ...

  2. Proto3:风格

    本文介绍.proto文件的编码风格.遵循下面的惯例,可以使你的protocol buffer消息定义和它们对应的类连贯且已读. 注意,protocol buffer风格随时间变化一直在进步,所以可能你 ...

  3. HTTP Continuation or non-HTTP traffic

    发现一个 HTTP      Continuation or non-HTTP traffic的数据包,之前没有碰到过.不懂其意义,一看长度,显示1460,与TCP segment of a reas ...

  4. 如何在NLP领域第一次做成一件事

    作者简介 周明,微软亚洲研究院首席研究员.ACL候任主席(president).中国计算机学会中文信息技术专委会主任.中国中文信息学会常务理事.哈工大.天津大学.南开大学.山东大学等多所学校博士导师. ...

  5. USB小白学习之路(8)FX2LP cy7c68013A——Slave FIFO 与FPGA通信(转)

    此博客转自CSDN:http://blog.csdn.net/xx116213/article/details/50535682 这个博客只对自己理解CY7C68013的配置有一定的帮助,对于配置CY ...

  6. 我折腾的shell笔记

    目录 Mac一些常用的快捷键记录 iTerm2或者命令行相关 Mac桌面上或者某目录下操作 一些实用脚本示例 代码无提示或者其他抽风症状,清除Xcode缓存 查看当前网络ip地址 日常提交推送git代 ...

  7. 使用MySQL练习增删改查时因为版本问题出现连接错误

    使用MySQL练习增删改查时出现连接错误,错误提示如下: 2020-02-19 19:53:51.088 ERROR 16328 --- [reate-249798694] com.alibaba.d ...

  8. CSS 权重图

    关系图 图片出处我找不到了. 结论 权重从高到低排序 1. !important 2. style 3. #id 4. .class .child-class 5. .class1.class2 6. ...

  9. C++ 动态链接库 dll的加载

    //首先生成一个my.dll项目,在cpp中添加如下代码 //导出函数 _declspec(dllexport) int test(int a, int b) { return a + b; } // ...

  10. C#的关键字Explicit 和 Implicit

    一.explicit和implicit explicit 关键字用于声明必须使用强制转换来调用的用户定义的类型转换运算符:implicit 关键字用于声明隐式的用户自定义的类型转换运算符. 总结来说: ...