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. 【XDOJ】坑爹的杜神

    原题: 众所周知,杜神非常喜欢出大模拟,也非常喜欢设置一些细节坑人.例如,在某次大赛中,他出了一道这样的题 (以下省略3000字) 计算出答案a后,你应该将a除以1000,再保留到小数点后两位输出,四 ...

  2. Ubuntu16.04连接SSH出现 Server responded “Algorithm negotiation failed” 的解决方法

    今天安装了Ubuntu16.04虚拟机,与SSH连接时出现了如下问题 ​ 解决方法如下: (写在前面:请先确保自己已经给Ubuntu安装了SSH服务.安装方法是在root模式下,终端输入命令apt-g ...

  3. BZOJ 4032: [HEOI2015]最短不公共子串 (dp*3 + SAM)

    转博客大法好 第4个子任务中,为什么只转移最近的一个位置,自己YY吧(多YY有益身体健康). #include <bits/stdc++.h> using namespace std; t ...

  4. HDU-2594-Simpsons' Hidden Talents(kmp, 扩展kmp)

    链接: https://vjudge.net/problem/HDU-2594#author=0 题意: 求S1的前缀和S2的后缀的<最大>匹配 思路: kmp方法: 将s1, s2首尾连 ...

  5. removeAttr(name)

    removeAttr(name) 概述 从每一个匹配的元素中删除一个属性 1.6以下版本在IE6使用JQuery的removeAttr方法删除disabled是无效的.解决的方法就是使用$(" ...

  6. ga

    https://developers.google.com/analytics/devguides/collection/gtagjs/events ga 添加事件示例: 在代码中指定您自己的值,就可 ...

  7. Java进阶知识06 Hibernate一对一单向外键关联(Annotation+XML实现)

    1.Annotation 注解版 1.1.创建Husband类和Wife类 package com.shore.model; import javax.persistence.Entity; impo ...

  8. 二叉树的序遍历x(内含结构体与非结构体版x)

    3143 codevs 二叉树的序遍历 题目描述 Description 求一棵二叉树的前序遍历,中序遍历和后序遍历 输入描述 Input Description 第一行一个整数n,表示这棵树的节点个 ...

  9. Python3:Collatz 序列(考拉咨猜想)

    编写一个名为collatz()的函数,它有一个名为number的参数: 如果参数是偶数,那么collatz()就打印出number//2,并返回该值: 如果number是奇数,那么collatz()就 ...

  10. jQuery动画之停止动画

    语法格式: $(selector).stop(true, false); 第一个参数: + ture: 后续动画不执行 false:后续动画会执行 第二个参数: true: 立即执行完成当前动画 fa ...