EL:全名为 Expression Language

1、语法:${sessionScope.user.sex}(从Session 的范围中,取得用户的性别),

所有的EL 都是以 ${  为起始,以 } 为结尾的。

2、EL 提供 . 和 [ ] 两种运算符来存取数据。

3、EL 变量:EL 存取变量数据的方法很简单,例如:${username} 。它的意思是去除某一范围中名称为 username 的变量,因为我们没有指定哪一范围的 username,所以它的默认值会先从 Page 范围找,假如找不到,再依序到 Request、Session、Application 范围。假如途中找到 username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传 null。

${pageScope.username} 取出 Page 范围的 username 变量
${requestScope.username} 取出 Request 范围的 username 变量
${sessionScope.username} 取出 Session 范围的 username 变量
${applicationScope.username} 取出 Application 范围的 username 变量

其中,pageScope、requestScope、sessionScope 和 applicationScope 都是 EL 的隐含对象 。

4、自动转变类型:例如 ${param.count + 20},假如窗体传来 count 的值为10,那么结果就是 30。

5、EL 隐含对象:

  》与范围有关的隐含对象:requestScope、sessionScope、pageScope、 applicationScope(这四个相当于 getAttribute(String name))

  》与输入有关的隐含对象:param(回传String 类型的值,相当于 request.getParameter(String name))、

              paramValue(回传String[ ] 类型的值,相当于 request.getParameterValues(String name))

  》其他的隐含对象:pageConext(表示此 JSP 的 PageContext)

6、EL 的关系运算符:

关系运算符 说 明 范 例 结 果
= = 或 eq 等于 ${ 5 = = 5 } 或 ${ 5 eq 5 } true
!= 或 ne 不等于 ${ 5 != 5 } 或 ${ 5 ne 5 } false
< 或 lt 小于 ${ 3 < 5 }或 ${ 3 lt 5 } true
> 或 gt 大于 ${ 3 > 5 }或 ${ 3 gt 5 } false
<= 或 le 小于等于 ${ 3 <= 5 }或 ${ 3 le 5 } true
>= 或 ge 大于等于 ${ 3 >= 5 }或 ${ 3 ge 5 } false
注意
在使用 EL 关系运算符时,不能够写成:
${param.password1} = = ${param.password2}
或者
${ ${param.password1 } = = ${ param.password2 } }
而应写成
${ param.password1 = = param.password2 }

7、Empty 运算符:主要用来判断值是否为 null 或空的 ,例如 ${ empty param.name }

条件运算符:${ A ? B : C}

括号运算符:主要用来改变执行的优先权,例如:${ A * (B+C) }

JSTL:全名为JavaServer Pages Standard Tag Library (JSP 标准标签函数库)

核心标签库 c。JSTL 也支持 EL 语法 ,例如 <c:out value="${userList.user.phoneNumber}" /> 。在 JSP 中要使用 JSTL 中的核心标签库时,必须使用<%@ taglib %>指令,并且设定 prefix 和uri 的值,通常设定如下:<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

操作:

1)、c:out  主要用于对特殊字符进行转换。真正进行输出时,最好使用 c:out。

2)、c:set  可以为域赋属性值。而对域对象中的 JavaBean 的属性赋值用的并不多。

3)、c:remove  移除指定域对象的指定属性值(较少使用,即便移除也是在 Servlet 中完成)

4)、c:if  在页面上对现实的内容进行过滤,把结果存储到域对象的属性中,但不灵活,会被其他自定义标签所取代。

5)、c:choose、c:when、c:otherwise 作用同上。但麻烦,不灵活。

6)、c:forEach  对集合进行遍历的(常用)

7)、c:forTokens  处理字符串,类似于 String 类的 split() 方法。(知道即可)

8)、c:import  导入页面到当前页面的。(了解)

9)、c:redirect  当前页面进行重定向的。(使用较少)

10)、c:url  产生一个URL 的, 可以进行URL 重写,变量值编码。(较为常用)

over。

JavaWeb:EL & JSTL的更多相关文章

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

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

  2. JavaWeb 后端 <六> 之 EL & JSTL 学习笔记

    一.EL表达式(特别重要)

  3. JAVAWEB开发之JSTL标签库的使用、 自己定义EL函数、自己定义标签(带属性的、带标签体的)

    JSTL  JSTL简单介绍: JSTL的全称:JSP Standard Tag Library,JSP标准标签库 JSTL的作用:   提供给Java Web开发者一个标准通用的标签函数库   和E ...

  4. 转:el表达式获取map对象的内容 & js中使用el表达式 & js 中使用jstl 实现 session.removeattribute

    原文链接: ①EL表达式取Map,List值的总结 ②在jsp中使用el表达式通过键获得后台的一个map<Long,String>的值 ③在javascript中使用el表达式(有图有真相 ...

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

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

  6. JavaWeb之动态页面技术JSP/EL/JSTL

    一.JSP技术 1.jsp脚本和注释 jsp脚本: 1)<%java代码%> ----- 内部的java代码翻译到service方法的内部 2)<%=java变量或表达式> - ...

  7. JavaWeb之JSP & EL & JSTL

    JSP & EL & JSTL JSP Java Server Page 什么是JSP 从用户角度看,就是一个网页.从程序员角度看,就是一个Java类,它继承Servlet,所以可以说 ...

  8. JavaWeb 补充(JSP&EL&JSTL)

    1. JSP:     1. 指令     2. 注释     3. 内置对象 2. MVC开发模式 3. EL表达式 4. JSTL标签 5. 三层架构 JSP: 1. 指令     * 作用:用于 ...

  9. 超全面的JavaWeb笔记day13<JSTL&自定义标签>

    1.JSTL标签库(重点) core out set remove url if choose when otherwise forEach fmt formatDate formatNumber 2 ...

随机推荐

  1. 基于JAVA语言的多线程技术

    1.简介 多线程技术属于操作系统范围内的知识: 进程与线程 可以这么理解,一个应用程序就是一个进程,在一个进程中包含至少一个线程:进程就是线程的容器,真正工作.处理任务的是线程. 进程是操作系统分配资 ...

  2. Java socket通信

    首先抛开语言层面,简单介绍一下socket通信过程: 1.服务器端开启监听端口,阻塞进程  等待客户端连接 2.客户端连接,这时就产生了一个socket socket就相当于一个传递消息的通道,一般都 ...

  3. Learning Ionic中文版本

    最近没有干劲,空闲时间也足,然后找了个比较容易集中精神的事情在做: 翻译<learning ionic> ionic是一个整合angularjs和cordova混合应用开发框架. 它可以通 ...

  4. Linux:系统的基本优化

    前言,在拥有一台服务器的时候,首先第一件事就要根据自己的需求进行初期的优化(装好系统了),以下是关于linux系统的基本优化,内容来源与网络,自己整理了以下,忘记来自哪个网址了, centos 系统优 ...

  5. 对STM32的NVIC_PriorityGroupConfig使用及优先级分组方式理解(转)

    源:http://blog.chinaunix.net/uid-22670933-id-3443085.html STM32有43个channel的settable的中断源:AIRC(Applicat ...

  6. PAT (Advanced Level) 1083. List Grades (25)

    简单排序. #include<cstdio> #include<cstring> #include<cmath> #include<vector> #i ...

  7. 二叉堆(C#)

    参考:http://www.cnblogs.com/skywang12345/p/3610390.html using System; using System.Collections.Generic ...

  8. JS——无缝滚动

    1.描述——无缝滚动图片 2.代码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8" ...

  9. Cordova3+sencha touch2.x 环境搭建

    1.安装 nodejs 2.安装 cordova: npm install -g cordova 3.创建一个工程: cordova create MyApp com.example.MyApp My ...

  10. Sequence Classification

    Natural Language Processing with Python Charpter 6.1 import nltk from nltk.corpus import brown def p ...