JSP(三)----EL表达式
## 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表达式的更多相关文章
- JavaWeb学习之JSP(三) EL表达式
EL表达式 什么是EL表达式 EL,Expression Language,表达式语言,是一种在JSP页面中获取数据的简单方式,通过${变量名}的方式可以获取到值,需要注意的是EL只能从 page ...
- 超全面的JavaWeb笔记day12<Jsp&JavaBean&El表达式>
1.JSP三大指令 page include taglib 2.9个内置对象 out page pageContext request response session application exc ...
- JSP的EL表达式语言
以下内容引用自http://wiki.jikexueyuan.com/project/jsp/expression-language.html: JSP表达式语言(EL)可以方便地访问存储在JavaB ...
- MVC实现登录,增删改查之数据展示:JSP的EL表达式(二)
这里的数据展示利用jsp的EL表达式,后台放入session,前台EL获取 数据库设计是这样的,一个老师对应有多个学生,在学生表student中建立外键tid与老师表teacher的tid对应,现在老 ...
- JSP、EL表达式的入门(要用)
2018-08-12 22:55:23 * JSP.EL表达式的入门(要用) * Servlet/JSP 是两种动态的WEB资源的两种技术. * 使用Servlet 生成HTML的页面 ...
- jsp中EL表达式不起作用的问题
jsp中EL表达式不起作用的问题 进行springmvc的@ExceptioinHandler调试,竟然是el表达式的问题, 学习了:http://blog.csdn.net/wolf_soul/ar ...
- JSP基础--EL表达式
EL(表达式语言) 1 EL概述 1.1 EL的作用 JSP2.0要把html和css分离.要把html和javascript分离.要把Java脚本替换成标签.标签的好处是非Java人员都可以使用. ...
- Java Web技术之JSP与EL表达式
1,jsp是用来干嘛的? JSP技术是用来解决在Servlet中需要书写大量的拼接html标签.以及框架的代码 2,jsp的三种脚本元素 a.JSP的脚本声明(定义) 格式: <%! 书写Jav ...
- JSP和El表达式和JSTL标签库使用
核心标签库: <%@ page language="java" import="java.util.*" pageEncoding="utf-8 ...
- JSP入门 el表达式
我们已经知道el是jsp-2.0规范的一部分,tomcat-5.x版本以上都已经能够支持jsp-2.0规范,但在更低版本的tomcat和webphere,weblogic中还是无法使用这一便捷方式. ...
随机推荐
- 码海拾遗:基于MySQL Connector/C++的MySQL操作(连接池)
1.MySQL安装及简单设置 (1)安装:在OSX系统下,可以使用万能的“brew install”命令来进行安装:brew isntall mysql(默认安装最新版的MySQL) (2)启动:br ...
- Magic Methods 5
描述符 : 将某种特殊类型的类的实例指派给另一个类的属性. 特殊类型为以下方法的1-3个 : __get__(self, instance, owner):用于访问属性,它返回属性的值 __set__ ...
- 阿里凭啥比腾讯更会和Groupon相处好?
提起Groupon,大部分人对其第一反应就是那个"过气"的团购网鼻祖和与腾讯合作推出的国内团购网站"高朋网",死相极惨!虽然马化腾表示是双方准备不足的原因,但却 ...
- 金矿还是大坑 VR创业真有那么美好?
VR创业真有那么美好?"> 近段时间,一个段子在疯狂流传:彩票中奖的1000万,其实是存放在银行里,而彩民每次花两块钱买彩票,其实就是去输一次密码,只要够坚持,总会取出那1000万-- ...
- vuejs 踩坑及经验总结
问题描述 在使用 v-for repeat 组件时控制台会出现警告: 解决方法 在组件标签上使用 v-for : 加 :key 使用 template 标签包裹该组件,再在 template 标签 上 ...
- 达拉草201771010105《面向对象程序设计(java)》第十八周学习总结
达拉草201771010105<面向对象程序设计(java)>第十八周学习总结 实验十八 总复习 实验时间 2018-12-30 1.实验目的与要求 (1) 综合掌握java基本程序结构 ...
- python下载神通板砖有声版
背景 前端时间在喜马拉雅上偶然听到牛大宝说的有声小说神通板砖,说的很是幽默,听的正起劲的时候开始收费了,于是我就在网上找了下看看有没有免费版,一搜果然有,但该网站上广告太多了,于是我就写了个小脚本可以 ...
- Centos +Docker 安装及仓库使用概述
1. Linux 系统学习Docker安装篇 这里我使用的Centos系统 安装Docker yum命令说明 即Yellowdog Update Modifier,是一种基于rpm的包管理工具 yu ...
- 状压dp 持续更新
前置知识点:二进制状态压缩,动态规划. 1. AcWing 91 最短Hamilton路径 (https://www.acwing.com/problem/content/93/) 给定一张 n 个点 ...
- 7-31 jmu-分段函数l (20 分)
本题目要求计算以下分段函数的值(x为从键盘输入的一个任意实数): 如果输入非数字,则输出“Input Error!” 输入格式: 在一行中输入一个实数x. 输出格式: 在一行中按”y=result”的 ...