1、JSTL概述

JSTL标签库由标签库和EL表达式两个部分组成。JSTL标准标签库(Java Server Page Standard Tag Library),用来解决创建的页面的操作问题,包括输入输出、条件测试、遍历集合。

2、EL表达式语法

EL表达式的主要作用:

  • 获取数据。EL表达式主要用于替换JSP页面中的脚本表达式,从Web作用域中获取Java对象,获取数据,包括访问Javabean的属性、List集合、Map集合、数组等。
  • 执行运算:利用EL表达式可以在JSP页面中执行一些基本的关系运算、逻辑运算和算术运算,以在JSP页面完成一些简单的逻辑操作。
  • 获取Web开发常用对象。利用EL表达式的隐式对象,可以轻松获得Web常用对象的引用,从而获取这些对象中的数据。

EL表达式的格式:

  ${expression },使用${文本时需要变为\${

[]和.运算符

  EL表达式可以返回任意类型的值。EL取值结果为一个带有属性的对象时,使用[]或.来访问其属性,实质是通过getter方法来访问其属性。访问形式如下:

  • ${object["propertyName"]}
  • ${object.propertyName}

  propertyName不是有效的java变量名时,只能使用[]方式访问。如${header["accept-language"]}。

  如果访问对象的属性也是一个对象,并且也带有属性,此时既可以使用[],也可以使用.运算符来访问第二个对象的属性。${pageContext.request.contextPath }

3、EL表达式的隐式对象

  EL表达式中,存在11个隐式对象。

隐式对象 描述 例子
pageContext JSP上下文对象。它可访问JSP隐式对象。 ${pageContext.request.contextPath }
param 一个包含所有请求参数的Map。用于获取请求参数。 ${param.loginame }
paramValues 包含所有请求参数的Map。 ${paramValues.name }
header 请求标题。 ${header.name }
headerValues 包含请求标题,以标题名作为key的Map。 ${headerValues.name }
cookie 包含请求对象中所有cookie对象。 ${cookie.name.value }
initParam 包含环境初始化参数。 ${initParam.name }
pageScope 页面域 ${pageScope.name }
requestScope 请求域 ${requestScope.name }
sessionScope 会话域 ${sessionScope.name }
applicationScope 应以程序上下文域 ${applicationScope.name }

4个作用域的范围从小到大:pageContext、requestScope、sessionScope、applicationScope。省略scope对象时,默认查找范围由小到大。

4、EL应用举例

 <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>注册页面</title>
</head>
<body>
<h2>注册页面</h2>
<form action="register.jsp" method="post">
<table>
<tr>
<td>登录名:</td>
<td><input type="text" name="loginame" /></td>
</tr>
<tr>
<td>爱好:</td>
<td>
<input type="checkbox" name="hobby" value="soccer">足球&nbsp;
<input type="checkbox" name="hobby" value="tennis">网球&nbsp;
<input type="checkbox" name="hobby" value="basketball">篮球&nbsp;
</td>
</tr>
<tr>
<td><input type="submit" value="提交"></td>
</tr>
</table>
</form>
</body>
</html>
 <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>获取隐式对象测试</title>
</head>
<body>
<h2>EL取值测试</h2>
param获取单个参数:${param.loginame }<br>
paramValues获取多个参数:${paramValues.hobby[0] } - ${paramValues.hobby[1] }
-${paramValues.hobby[2] }<br>
header获取标题:${header.connection }<br>
header获取标题:${header["accept-language"] }<br>
headerValues获取标题:${headerValues["accept-language"] }<br>
cookie获取JSESSIONID:${cookie.JSESSIONID }<br>
cookie获取JSESSIONID名称:${cookie.JSESSIONID.name }<br>
cookie获取JSESSIONID值:${cookie.JSESSIONID.value }<br>
initParam获取初始化参数:${initParam.username }<br>
</body>
</html>

web.xml配置全局初始化参数

 <context-param>
<param-name>username</param-name>
<param-value>AlphaJunS</param-value>
</context-param>

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& ...

随机推荐

  1. 第六章 组件 58 组件切换-使用v-if和v-else结合flag进行切换

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...

  2. 解决tomcat控制台乱码+清除过期缓存条目后可用空间仍不足 - 请考虑增加缓存的最大空间问题

    一.乱码 1.打开Tomcat的目录,找到conf文件夹,一般修改server.xml中的编码集,改为utf-8即可 2.若server.xml中编码设置的就是utf-8,可以修改logging.pr ...

  3. TXNLP 09-17

    上节课讲了一些算法的复杂度,都比较简单,我就没有单独截图.1 n n^2 nlogn logn...等等 其实一些排序问题也比较简单.还是给大家列举一下. 归并排序: 主定理定理..吐血 算法复杂度相 ...

  4. 大数据技术之kettle安装使用

    kettle是一款开源的ETL工具,纯java编写,可以在Windows.Linux.Unix上运行,绿色无需安装,数据抽取高效稳定. kettle的两种设计 简述: Transformation(转 ...

  5. Java-FtpUtil工具类

    package cn.ipanel.app.newspapers.util; import java.io.BufferedReader; import java.io.DataInputStream ...

  6. TensorFlow - 深度学习破解验证码 实验

    TensorFlow - 深度学习破解验证码 简介:验证码主要用于防刷,传统的验证码识别算法一般需要把验证码分割为单个字符,然后逐个识别,如果字符之间相互重叠,传统的算法就然并卵了,本文采用cnn对验 ...

  7. django之ajax结合sweetalert使用,分页器和bulk_create批量插入 07

    目录 sweetalert插件 bulk_create 批量插入数据 分页器 简易版本的分页器的推导 自定义分页器的使用(组件) sweetalert插件 有这么一个需求: ​ 当用户进行一个删除数据 ...

  8. 【leetcode】1281. Subtract the Product and Sum of Digits of an Integer

    题目如下: Given an integer number n, return the difference between the product of its digits and the sum ...

  9. H5 设计尺寸

    750*1218 微信下 兼容 7plus 内容高度 居中 1000px 内 750*1448 微信下 兼容 iphoneX 微信导航栏高度 64px 64px =  导航栏44+状态栏20 但是现在 ...

  10. URAL 2036 Intersect Until You're Sick of It 形成点的个数 next_permutation()函数

    A - Intersect Until You're Sick of It Time Limit:500MS     Memory Limit:65536KB     64bit IO Format: ...