el表达式和jstl标签库

一:el表达式:表达式语言,jsp页面获取数据比较简单
1、el表达式的语法(掌握)
el表达式通常取值是获取作用域对象中的属性值:${属性名}=>是el表达式的简写的形式
跟jquery不一样,$(选择器)jquery对象,代码写在js的脚本块中
完整的书写形式:
  四个作用域 四种取值方式获取不同作用域中的属性值
${pageScope.attrname } pageScope.属性名
${requestScope.attrname }
${sessionScope.attrname }
${applicationScope.attrname }
注:jsp2.0以上版本,对应 servlet 3.0以上版本,jsp默认忽略EL表达式,所以在使用el表达式的时候需要在 page指令中加上。isELIgnored="false" 开启EL表达式,true忽略(默认是忽略)
EL表达式取值的两种方式例子:test.jsp

 <%@ page language="java" isELIgnored="false" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'test.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head> <body>
<%
//将数据放到作用域对象中 //page域 当前页面有效
pageContext.setAttribute("uname", "印度阿三"); //一次请求有效,可以是多个页面,转发页面
request.setAttribute("fav", "睡觉"); //session域取值 一次会话,多个请求
session.setAttribute("value", "躺在床上听音乐"); //应用域中取值一个web应用
application.setAttribute("小喜庆", "小云云");
%>
<!--page域用el表达式取值 -->
page域用el表达式取值:
${uname }&emsp;
${pageScope.uname }<hr> <!--request域用el表达式取值 -->
request域用el表达式取值:
${fav }&emsp;
${requestScope.fav }<hr> <!--session域用el表达式取值 -->
session域用el表达式取值:
${value }&emsp;
${sessionScope.value }<hr> <!--application域用el表达式取值 -->
application域用el表达式取值:
${小喜庆 }&emsp;
${applicationScope.小喜庆 }<hr> </body>
</html>

在测试作用范围页面之前,必须先运行 test.jsp将数据放到作用域对象中
测试test.jsp四个作用域的作用范围【getTest.jsp】

 <%@ page language="java" isELIgnored="false" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'getTest.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head> <body>
<p>在测试 当前页面之前,必须先运行 test.jsp将数据放到作用域对象中</p><hr>
测试test.jsp四个作用域的作用范围 <br><hr> <!--page 当前页面有效 -->
page域用el表达式取值:
${uname }&emsp;<br>
<!--request 一次请求有效,可以是多个页面,转发页面 -->
request域用el表达式取值:
${fav }&emsp;<br>
<!--session 一次会话,多个请求 -->
session域用el表达式取值:
${value }&emsp;<br>
<!--application 应用域中取值一个web应用 -->
application域用el表达式取值:
${小喜庆 }&emsp;<br>
</body>
</html>

如果不同的作用域,但是属性名相同

<!-- 【取值】如果不同的作用域,但是属性名相同 -->

注意:在省略 ***Scope对象的时候,取值的顺序,先从小范围获取数据 page,如果获取到了就返回,如果page获取不到,会去找request域,依次类推,找application ,如果都找不到,则返回null
2、el表达式获取不同数据类型的值(java 代码 字符串,数值,对象,list,map,数组)
①对象


注:在获取对象属性的时候,el表达式的解析的工具类,底层调用 的 get方法,不是直接调用的属性。el的解析对象用的反射,调用 get方法 Class ----getMethod("get方法")。${student.id }<=> ${student.getId }
②list


③map


注:map取值有两个:
点获取.简单【${map.fav }】
["key"] 比较灵活,可以处理特殊符号【${map.fav,ff }错误的 =>${map["fav,ff"] }】
④数组


student.java

 package boom.el.entity;

 import java.util.Date;

 /**
* 学生实体类对象
* @author Administrator
*
*/
public class Student {
private int id;
private String name;
private Date hiredate; public Student() {
} public Student(int id, String name, Date hiredate) {
super();
this.id = id;
this.name = name;
this.hiredate = hiredate;
} public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public Date getHiredate() {
return hiredate;
} public void setHiredate(Date hiredate) {
this.hiredate = hiredate;
} @Override
public String toString() {
return "Sutudent [id=" + id + ", name=" + name + ", hiredate="
+ hiredate + "]";
} }

test.jsp

 <%@ page language="java" isELIgnored="false" import="java.util.* , boom.el.entity.*"  pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>el表达式获取不同数据类型的值 </title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body> <!-- 获取对象的值 -->
<%
/* 获取对象的值 【创建一个实体类 ,获取对象的属性值】*/
Student student = new Student(0,"林徽因",new Date());
//将 Student对象 放到作用域对象中
request.setAttribute("student", student);
%>
${student }<hr>
${student.id }&emsp; ${student.name }&emsp; ${student.hiredate }&emsp;
<%-- 在获取对象属性的时候 ,el表达式的解析的工具类 底层调用 的 get方法,不是直接调用的属性
el的解析对象用的反射,调用 get方法 Class ----getMethod("get方法")
${student.id }<=> ${student.getId }
--%> <!-- 获取list的值 -->
<%
/* 创建对象存入list中 */
Student stu1 = new Student(1,"陆小曼",new Date());
Student stu2 = new Student(2,"周旋",new Date());
Student stu3 = new Student(3,"阮玲玉",new Date());
/* <!-- list存值 --> */
List<Student> list = new ArrayList();
list.add(stu1);
list.add(stu2);
list.add(stu3);
request.setAttribute("list", list);
%>
<!-- el表达式取值 -->
<hr> 获取 作用域对象中list<br>
${list.get(0) }<br>
<!-- list获取属性的具体值 -->
${list.get(1).name }<br>
${list.get(2) }<br><hr> <!-- 获取map的值 -->
<%
Map map = new HashMap();
map.put("fav", "music");
map.put("codeing", "Java");
map.put("fav,ff", "run");
request.setAttribute("map", map);
%>
<!-- el表达式取值 -->
${map }<br>
${map.fav }<br>
${map["fav,ff"] }<br><hr> <%-- map取值有两个
. 简单
["key"] 比较灵活 ,可以处理特殊符号
${map.fav,ff } 错误的 =>${map["fav,ff"] } --%> <!-- 获取数组的值 -->
<%
String[] arr = {"haha" , "gaga" ,"heihei"};
request.setAttribute("arr", arr);
%>
<!-- el表达式取值 -->
获取数组的元素:
${arr }&emsp;
${arr[0] } </body>
</html>

3、el表达式的基本运算
+ 字符串相加 非数值型字符串,在el表达式中不能直接相加,需要存放到request域中

4、el表达式可以在html代码块中,javascript 的脚本块中

5、el表达式的内置对象11个(掌握其中的一部分)
隐含对象 描述 
和作用域相关的【前4】,存取数据的隐含对象:【主要作用:获取作用域对象的数据 】



二:jstl标签库
1、jstl标签库,jsp标准标签库(只要jsp,标签库就起作用)
jstl标签库常用标签:jstl 标签库 for 循环,条件判断【for循环方法的封装 ,if 判断方法的封装】
2、jstl标签库的分类:
 ①核心标签库:c标签库 
 ②常用标签:foreach 标签 遍历数据、逻辑判断标签:c:if、c:when、c:choose、c:otherwise
 ③格式化标签库:时间格式化标签
 ④函数标签库
 ⑤xml标签库
 ⑥数据库sql标签库
3、jstl标签库使用
jstl 标签,就是 java代码对 函数的封装
myeclipse创建web项目的时候,自动加载jstl

①引入相应的jstl标签库
<!-- 核心标签库 -->
<%@taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
<!-- 函数标签库 -->
<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
解释:@taglib引入、uri 标签库地址、
tld 文件 将标签库底层的java实现类和 jsp连接起来的文件

②使用标签库

参数解释:
<c:set></c:set>:存储数据、var 存储数据的变量、scope 作用范围、value 存储的数据 
<c:out value=""></c:out>:value 输出数据
<c:remove var="name"/>:移除数据
遍历:
<!--属性 :
var   遍历的变量 
items 要被遍历的数据
-->
<c:forEach var="stu1" items="${list }">
  ${stu1.id }=>${stu1.name }<hr>
</c:forEach>

09-【el表达式和jstl标签库】的更多相关文章

  1. JSP、EL表达式、JSTL标签库干货(建议收藏)

    JSP(Java Server Pages)类似于ASP技术,它是在传统的网页HTML文件(.htm,.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件, ...

  2. Struts标签、Ognl表达式、el表达式、jstl标签库这四者之间的关系和各自作用

    我之前虽然会用,但是一直分不清彼此之间有什么区别,所以查找资料,将它们进行整合区分,加深了解, 一 介绍 1.Struts2的作用   Struts2标签库提供了主题.模板支持,极大地简化了视图页面的 ...

  3. Java实战之04JavaWeb-04JSP、EL表达式、JSTL标签库

    一.jsp部分 只要是与页面显示相关的都是重点 1.jsp的脚本 <%java代码%>:被翻译到service方法内部,局部变量,局部的功能 <%=表达式或变量%>:翻译成se ...

  4. EL表达式、JSTL标签库

    一.EL(Expression Language)表达式 语法结构:${var} 若要停用对EL表达式的评估的话,需要使用page指令将isELIgnored属性值设为true: <%@ pag ...

  5. EL表达式和JSTL标签库

    expresion language表达式语言 可以输出表达式的值.跟jsp的表达式脚本一样.计算表达式的值后输出.  EL表达式出现的目的是为了使JSP写起来更加简单,让jsp的代码更佳简化. 1. ...

  6. Java第三阶段学习(十四、JSP动态页面、EL表达式、JSTL标签库)

    一.JSP技术 1.jsp脚本和注释 jap脚本: 1)<%java代码%> ----- 内部的java代码翻译到service方法的内部,比如写在doget.dopost 内的代码 2) ...

  7. JavaWeb基础—EL表达式与JSTL标签库

    EL表达式: EL 全名为Expression Language.EL主要作用 获取数据(访问对象,访问数据,遍历集合等) 执行运算 获取JavaWeb常用对象 调用Java方法(EL函数库) 给出一 ...

  8. 个人整理的jsp、EL表达式、JSTL标签库的笔记,少概念多实用,需要的留下邮箱,会第一时间分享原稿PDF给大家!

    jsp 第一章 jsp介绍及对比servlet 作用: 动态网页技术,动态的从数据库获取数据 jsp和servlet的优缺点: jsp优点:页面表现方便,利于写html代码 jsp缺点:业务逻辑处理麻 ...

  9. jsp页面使用EL表达式 使用Jstl标签库中的标签,需要引入jstl.jar和standard.jar

    spring boot 中使用jstl 首先在pom中加入 <dependency> <groupId>jstl</groupId> <artifactId& ...

  10. EL表达式与JSTL标签库(一)

    1.JSTL概述 JSTL标签库由标签库和EL表达式两个部分组成.JSTL标准标签库(Java Server Page Standard Tag Library),用来解决创建的页面的操作问题,包括输 ...

随机推荐

  1. MATLAB学习(二)读写xls文件

    >> N=xlsread('DRINK.xls','DRINK','A1:D8') N = 207.2000 3.3000 15.5000 2.8000 36.8000 5.9000 12 ...

  2. Angular05 angular架构、搭建angular开发环境、组件必备三要素、angular启动过程

    1 angular架构 1.1 组件:是angular应用的基本构建模块,可以理解为一段带有业务逻辑和数据的HTML 1.2 服务:用来封装可重用的业务逻辑 1.3 指令:允许你想HTML元素添加自定 ...

  3. ECS Samples概述

    本文档介绍了Unity 面向数据的技术堆栈(DOTS)的三个主要方面:实体包,Unity C#作业系统和Unity Burst编译器所涵盖的Unity实体 - 组件系统(ECS).由于实体是DOTS中 ...

  4. android#定制ListView的界面

    内容摘自<第一行代码>——郭霖 只能显示一段文本的ListView实在是太单调了,我们现在就来对ListView的界面进行定制,让它可以显示更加丰富的内容.首先需要准备好一组图片,分别对应 ...

  5. layui 时间选择器 不要秒的选项

    通过修改 CSS 样式可以隐藏秒的选项 ++ .laydate-time-list{padding-bottom:0;overflow:hidden} .laydate-time-list>li ...

  6. Windows环境下安装Hadoop+Hive的使用案例

    Hadoop安装: 首先到官方下载官网的hadoop2.7.7,链接如下 https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/ 找网盘的 ...

  7. Linux系列:之软件安装

    1.安装软件 不同的Linux版本可能使用不同的软件管理机制. RPM:使用这类命令进行安装的Linux版本有CentOS. DPKG:使用这类命令进行安装的Linux版本有Debian.Ubuntu ...

  8. Spring4学习回顾之路06- IOC容器中Bean的生命周期方法

    SpringIOC容器可以管理Bean的生命周期,Spring允许在Bean生命周期的特定点执行特定的任务! Spring IOC容器对Bean的生命周期进行管理的过程: -通过构造器或者工厂方法创建 ...

  9. 【操作记录】搭建虚拟机下 java 开发环境

    第一步,配置虚拟机 virtualBox 官网下载最新版,安装,选择简体中文. CentOS 官网下载 最小版iso. 新建虚拟机并配置,挂载iso光盘,然后启动. 因为是最小版,安装时可能不支持使用 ...

  10. URL去重与文章去重的一些基本方法

    一.url去重url存到数据库所有url放到set中(一亿条占用9G内存)md5之后放到set中(一亿条占用2,3G的内存)scrapy采用的就是类似方法bitmap方法(url经过hash后映射到b ...