JavaWeb知识结构图

第3节 EL介绍和运算符 && 第4节 EL获取域中存储的数据

## EL表达式

1. 概念:Expression Language 表达式语言
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. 语法:
       a. ${域名称.键名}:从指定域中获取指定键的值
       * 域名称:
  1. pageScope --> pageContext
  2. requestScope --> request
  3. sessionScope --> session
  4. applicationScope --> application(ServletContext)

  b. ${键名}:表示依次从最小的域中查找是否有该键对应的值,直到找到为止。

  c. 获取对象、List集合、Map集合的值
    1. 对象:${域名称.键名.属性名}
    * 本质上会去调用对象的getter方法

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

    3. Map集合:
    * ${域名称.键名.key名称}
    * ${域名称.键名["key名称"]}

第5节 JSTL常用标签

## JSTL
1. 概念:JavaServer Pages Tag Library  JSP标准标签库
* 是由Apache组织提供的开源免费的jsp标签    <标签>

2. 作用:用于简化和替换jsp页面上的java代码

3. 使用步骤:
   (1). 导入jstl相关jar包

 javax.servlet.jsp.jstl
jstl-impl

(2). 引入标签库:taglib指令: <%@ taglib %>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

(3). 使用标签

4. 常用的JSTL标签
1. if:相当于java代码的if语句
1. 属性:
* test 必须属性,接受boolean表达式
* 如果表达式为true,则显示if标签体内容,如果为false,则不显示标签体内容
* 一般情况下,test属性值会结合el表达式一起使用
2. 注意:
* c:if标签没有else情况,想要else情况,则可以再定义一个c:if标签

<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html>
<head>
<title>if标签</title>
</head>
<body> <%-- c:if标签
1. 属性:
* test 必须属性,接受boolean表达式
* 如果表达式为true,则显示if标签体内容,如果为false,则不显示标签体内容
* 一般情况下,test属性值会结合el表达式一起使用 2. 注意:c:if标签没有else情况,想要else情况,则可以在定义一个c:if标签 --%> <c:if test="true">
<h1>我是真...</h1>
</c:if>
<br> <%
//判断request域中的一个list集合是否为空,如果不为null则显示遍历集合 List list = new ArrayList();
list.add("aaaa");
request.setAttribute("list",list); request.setAttribute("number",4); %> <c:if test="${not empty list}">
遍历集合... </c:if>
<br> <c:if test="${number % 2 != 0}"> ${number}为奇数 </c:if> <c:if test="${number % 2 == 0}"> ${number}为偶数 </c:if> </body>
</html>

2. choose:相当于java代码的switch语句

1. 使用choose标签声明 相当于switch声明2. 使用when标签做判断 相当于case
3. 使用otherwise标签做其他情况的声明 相当于default

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<html>
<head>
<title>choose标签</title>
</head>
<body> <%--
完成数字编号对应星期几案例
1.域中存储一数字
2.使用choose标签取出数字 相当于switch声明
3.使用when标签做数字判断 相当于case
4.otherwise标签做其他情况的声明 相当于default
--%> <%
request.setAttribute("number",51);
%> <c:choose>
<c:when test="${number == 1}">星期一</c:when>
<c:when test="${number == 2}">星期二</c:when>
<c:when test="${number == 3}">星期三</c:when>
<c:when test="${number == 4}">星期四</c:when>
<c:when test="${number == 5}">星期五</c:when>
<c:when test="${number == 6}">星期六</c:when>
<c:when test="${number == 7}">星期天</c:when> <c:otherwise>数字输入有误</c:otherwise>
</c:choose> </body>
</html>

3. foreach:相当于java代码的for语句

<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html>
<head>
<title>foreach标签</title>
</head>
<body> <%-- foreach:相当于java代码的for语句
1. 完成重复的操作
for(int i = 0; i < 10; i ++){ }
* 属性:
begin:开始值
end:结束值
var:临时变量
step:步长
varStatus:循环状态对象
index:容器中元素的索引,从0开始
count:循环次数,从1开始
2. 遍历容器
List<User> list;
for(User user : list){ } * 属性:
items:容器对象
var:容器中元素的临时变量
varStatus:循环状态对象
index:容器中元素的索引,从0开始
count:循环次数,从1开始 --%> <c:forEach begin="1" end="10" var="i" step="2" varStatus="s">
${i} <h3>${s.index}<h3> <h4> ${s.count} </h4><br> </c:forEach> <hr> <%
List list = new ArrayList();
list.add("aaa");
list.add("bbb");
list.add("ccc"); request.setAttribute("list",list); %> <c:forEach items="${list}" var="str" varStatus="s"> ${s.index} ${s.count} ${str}<br> </c:forEach> </body>
</html>

JavaWeb部分视频\2-12JSP,EL和JSTL的更多相关文章

  1. JavaWeb——EL及JSTL学习总结

    什么是EL表达式 为什么需要EL EL的主要作用 EL的语法 EL的开发步骤 EL实例练习 EL中的运算符 EL表达式显示内容的特点 EL的特点 EL隐式对象 EL隐式对象介绍 隐式对象实例练习 什么 ...

  2. EL 和 JSTL

    EL 什么是EL表达式 EL(Express Lanuage) 表达式可以嵌入在jsp页面内部 减少jsp脚本的编写 EL出现的目的是要替代jsp页面中脚本的编写 作用区间 EL最主要的作用是获取四大 ...

  3. jsp与El,jstl知识点总结归纳

    jsp与El,jstl知识点总结归纳 jsp部分 一.jsp的三大指令 page ,include,taglib 1.jsp中的page指令 <% page %>-设置jsp 例如: &l ...

  4. JSP内置标签 JSP中JavaBean标签 JSP开发模式 EL和JSTL快速入门

    2 JSP内置标签(美化+业务逻辑)   1)为了取代<%%>脚本形式,使用JSP标签/JSP动作,目的:与JSP页面的美化,即JSP面页都是由标签组成,不再有其它的内容   2)JSP内 ...

  5. 在idea的maven项目使用el或jstl表达式

    必须加上这句: <%@ page isELIgnored="false" %> 否则无法解析el或jstl表达式 <%@ taglib prefix=" ...

  6. 第75节:Java的中的JSP,EL和JSTL

    第75节:Java中的JSP,EL和JSTL 哭吧看不完的!!! Cookie和`Session 请求转发和重定向的区别: 地址不一样 请求次数也不一样 数据无法传递 4.跳转范围有限制 效率 请求转 ...

  7. JSP、EL、JSTL

    JSP(Java Server Pages) 什么是JSP Java Server Pages(Java服务器端的页面) 使用JSP:SP = HTML + Java代码 + JSP自身的东西.执行J ...

  8. jsp中的EL和JSTL的关系

    对于JSTL和EL之间的关系,这个问题对于初学JSP的朋友来说,估计是个问题,下面来详细介绍一下JSTL和EL表达式他们之间的关系,以及JSTL和EL一些相关概念! EL相关概念 JSTL一般要配合E ...

  9. Jsp应用EL和JSTL实例对比。

    普通方式: register.jsp <%@ page language="java" import="java.util.*" pageEncoding ...

  10. Unit05: WEB项目的开发模式 、转发 和 Unit09: EL、JSTL

    Unit05: WEB项目的开发模式 .转发   和  Unit09: EL.JSTL dao package dao; import java.io.Serializable; import jav ...

随机推荐

  1. Angular 学习1

    AngularJS 表达式 AngularJS 使用 表达式 把数据绑定到 HTML. AngularJS 表达式 AngularJS 表达式 很像 JavaScript 表达式:它们可以包含文字.运 ...

  2. ZOJ 3795 Grouping 强连通分量-tarjan

    一开始我还天真的一遍DFS求出最长链以为就可以了 不过发现存在有向环,即强连通分量SCC,有向环里的每个点都是可比的,都要分别给个集合才行,最后应该把这些强连通分量缩成一个点,最后保证图里是 有向无环 ...

  3. UVA - 10689 Yet another Number Sequence (矩阵快速幂求斐波那契)

    题意:已知f(0) = a,f(1) = b,f(n) = f(n − 1) + f(n − 2), n > 1,求f(n)的后m位数. 分析:n最大为109,矩阵快速幂求解,复杂度log2(1 ...

  4. POJ - 1753 Flip Game (IDA*)

    题意:4*4的棋盘摆满棋子,有黑有白,翻转一个棋子的同时也将翻转其上下左右的棋子(翻转后黑变白,白变黑),问使棋盘上所有棋子颜色相同,最少翻转的棋子数. 分析: 1.每个棋子至多翻转1次.翻转偶数次与 ...

  5. UVA - 11346 Probability(概率)(连续概率)

    题意:在[-a, a]*[-b, b]区域内随机取一个点P,求以(0, 0)和P为对角线的长方形面积大于S的概率(a,b>0, S>=0). 分析: 1.若长方形面积>S,则选取的P ...

  6. 关于RxJS 处理多个Http请求 串行与并行方法

    mergeMap mergeMap 操作符用于从内部的 Observable 对象中获取值,然后返回给父级流对象. 合并 Observable 对象 123456 import { of } from ...

  7. swiper实现匀速无缝滚动

    设置属性 speed:2500,//匀速时间 autoplay: { delay: 0, stopOnLastSlide: false, disableOnInteraction: true, }, ...

  8. Oracle学习笔记(1)

    1.常用sqlplus命令 (1)查看当前登录用户:show user; (2)切换当前登录用户:conn 用户名/密码 (切换系统用户+as sysdba ); (3)断开当前登录用户:disc; ...

  9. WindowsForm ComboBoxList 下拉框带复选框 可以动态添加

    先来张效果图: 1.这里需要对控件进行重写,详细内容如下,对此不感兴趣的可以直接跳过这步,下载本人生成的dll,直接看第二小结,下载链接https://pan.baidu.com/s/1gfzrK5t ...

  10. 高质量Contrast Essay写作的结构分享

    很多留学生对于Contrast Essay写作不是很了解,拿不到高分也是常有的事,那么大家要如何彻底掌握Contrast Essay写作呢?今天小编就给同学们分享Contrast Essay写作的结构 ...