EL表达式和JSTL的使用
一:EL表达式
1.概述:在jsp开发中,为了获取Servlet域对象中存储的数据,经常要写很多java代码,这样的做法会使JSP页面混乱,难以维护,为此,在JSP2.0规范中提供了EL表达式。它是Expression Language的缩写。
2.语法:${表达式}
2.1内置对象:

2.1.1获取指定域的对象:
<%--初始化数据-- %>
<%
pageContext.setAttribute("name", "pValue");
request.setAttribute("name", "rValue");
session.setAttribute("name","sValue");
application.setAttribute("name", "aValue");
%>
<%--获取指定作用域的数据--%>
${pageScope.name }
${requestScope.name }
${sessionScope.name }
${applicationScope.name }
2.1.2请求参数
<%--
param.xxx 对应 request.getParameter("xxx");
paramValues.xxx 对应 request.getParameterValues("xxx");
--%> ${param.username }
${paramValues.hobby }<%--获得一组数据,使用数组 --%>
${paramValues.hobby[1] }<%--如果是数组,可以使用下表 --%>
2.1.3pageContext
jsp:<%=((HttpServletRequest)pageContext.getRequest()).getContextPath() %>
el:${pageContext.request.contextPath }
2.2使用el获得数据
2.2.1自定义数据,必须放在作用域
<%
String s = "black";
%> ${s } <%--无法获取,s不在域中 --%>
2.2.2获得字符串
<%
String s = "black";
pageContext.setAttribute("sss",s);
%> ${sss}<br/>
${pageScope.sss }
<%这两个都可以获取到字符串“black”%>
2.2.3获得数组
<%
String[] arr = {"A","B","C"};
pageContext.setAttribute("arr",arr,PageContext.REQUEST_SCOPE);
%>
${arr }
${arr[1]}
${arr[2] }
//上面的PageContext.REQUEST_SCOPE后面介绍
2.3
2.3.1
setAttribute(String name,值,int scope):如果没有指定scope,该属性默认在page范围内,如:pageContext.setAttribute("page","hello");
使用pageContext将属性设置在request范围中pageContext.setAttribute("request2","hello" , pageContext.REQUEST_SCOPE);
使用pageContext将属性设置在session范围中pageContext.setAttribute("session2","hello" , pageContext.SESSION_SCOPE);
使用pageContext将属性设置在application范围中pageContext.setAttribute("app2","hello" , pageContext.APPLICATION_SCOPE);
2.3.2 getAttribute(String name,int scope):取得指定范围内的name属性,
其中scope可以是如下4个值:
PageContext.PAGE_SCOPE:对应于page范围。
PageContext.REQUEST_SCOPE:对应于request范围。
PageContext.SESSION_SCOPE:对应于session范围。
PageContext.APPLICATION_SCOPE:对应于application范围。
3.EL执行表达式
例如:
${1+1}
${empty user}
${user==null?true:false}
二:JSTL
1.概述:
JSTL(JSP Standard Tag Library),JSP标准标签库,可以嵌入在jsp页面中使用标签的形式完成业务逻辑等功能。jstl出现的目的同el一样也是要代替jsp页面中的脚本代码。JSTL标准标准标签库有5个子库,但随着发展,目前常使用的是他的核心库
|
标签库 |
标签库的URI |
前缀 |
|
Core |
http://java.sun.com/jsp/jstl/core |
c |
|
I18N |
http://java.sun.com/jsp/jstl/fmt |
fmt |
|
SQL |
http://java.sun.com/jsp/jstl/sql |
sql |
|
XML |
http://java.sun.com/jsp/jstl/xml |
x |
|
Functions |
http://java.sun.com/jsp/jstl/functions |
fn |
2.导入安装包:
从Apache的网站下载JSTL的JAR包。进入 “http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/”网址下载 JSTL的安装包。jakarta-taglibs-standard-1.1.2.zip,然后将下载好的JSTL安装包 进行解压,此时,在lib目录下可以看到两个JAR文件,分别为jstl.jar和standard.jar。 其中,jstl.jar文件包含JSTL规范中定义的接口和相关类,standard.jar文件包含用于 实现JSTL的.class文件以及JSTL中5个标签库描述符文件(TLD)

使用jsp的taglib指令导入核心标签库
3.一个简单的jsp文件

然后启动Tomcat服务器,在地址栏输入地址访问test.jsp此时浏览器显示:

4.JSTL核心库的常用标签
4.1 if标签:
<c:if test=””> 其中test是返回boolean的条件

如果visitCount==1判定为真,则浏览器页面打印:This is you first vist........!
4.2 forEach标签
4.2.1
for(int i=0;i<=5;i++){
System.out.println(i);
}
<%--对应如下:--%>
<c:forEach begin="0" end="5" var="i" > ${i }<br/> </c:forEach>
4.2.2
<%
String[] fruits = {"apple","orange","grape","banana"};
pageContext.setAttribute("f",fruits);
%>
<c:forEach var="name" items="<%=fruits %>">
${name }
</c:forEach>
items属性用于指定将要迭代的集合对象
EL表达式和JSTL的使用的更多相关文章
- [转]EL表达式和JSTL表达式实例
/* **Title:EL表达式和JSTL表达式实例 **Author:Insun **Blog:http://yxmhero1989.blog.163.com/ */ 为了方便写JSP,我们引入了E ...
- 简述jsp之EL表达式和jstl及其使用
Jsp的指令之include指令include指令:代表的是页面的包含. 作用:可以把一些jsp的页面包含在一起,对外展示. 页面的布局,现在已经不用了,现在都用css+div进行布局.include ...
- jsp EL表达式和JSTL标签if-else if-else用法
java web javaEE ,jsp EL表达式和JSTL标签if-else if-else四种用法一.条件运算符 ${user.gender==?'男':'女'} 二.if() <c:if ...
- Javaweb学习笔记6—EL表达式与JSTL及自定义标签
今天来讲javaweb的第六阶段学习. EL表达式与JSTL及自定义标签是对上篇文章介绍的JSP的扩展,不能说是很重要的东西,但是也要了解. 老规矩,首先先用一张思维导图来展现今天的博客内容. ps: ...
- EL表达式、JSTL
EL表达式 一.简介 > JSP表达式 <%= %> 用于向页面中输出一个对象. > 到JSP2.0时,在我们的页面中不允许出现 JSP表达式和 脚本片段. ...
- (十)EL表达式和JSTL标签快速入门
目录 什么是 el 表达式 示例:使用EL表达式获取pageContext .request.session.application域中的数据: 示例:使用EL表达式获取Bean属性 获取当前WEB应 ...
- EL&Filter&Listener:EL表达式和JSTL,Servlet规范中的过滤器,Servlet规范中的监听器,观察着设计模式,监听器的使用,综合案例学生管理系统
EL&Filter&Listener-授课 1 EL表达式和JSTL 1.1 EL表达式 1.1.1 EL表达式介绍 *** EL(Expression Language):表达式语言 ...
- EL表达式和JSTL
EL相关概念JSTL一般要配合EL表达式一起使用,来实现在jsp中不出现java代码段.所以我们先来学习EL表达式 EL主要用于查找作用域中的数据,然后对它们执行简单操作:它不是编程语言,甚至不是脚本 ...
- EL表达式与JSTL
内容包括 EL表达式 EL函数库 JSTL 核心标签库 格式化标签库 SQL标签库 XML标签库 自定义标签库 EL表达式 EL是Expression Language的是缩写,是JSP页面编写的一种 ...
- javaWeb el表达式和jstl快速入门案例
<%@page import="de.bvb.domain.Person"%> <%@page import="de.bvb.domain.Addres ...
随机推荐
- 前端之js中的函数
函数 函数就是重复执行的代码片. 函数定义与执行 <script type="text/javascript"> // 函数定义 function ...
- python之os库
python之os库 os.name 判断现在正在实用的平台,Windows 返回 'nt'; Linux 返回'posix' >>> os.name 'nt' os.getcwd( ...
- 你应该掌握的C++ RAII手法:Scopegaurd
C++作为一门Native Langueages,在C++98/03时代,资源管理是个大问题.而内存管理又是其中最大的问题.申请的堆内存需要手动分配和释放,为了确保内存正确释放,一般原则是" ...
- Dynamic Programming | Set 4 (Longest Common Subsequence)
首先来看什么是最长公共子序列:给定两个序列,找到两个序列中均存在的最长公共子序列的长度.子序列需要以相关的顺序呈现,但不必连续.例如,"abc", "abg", ...
- Ubuntu 16.04虚拟机调整窗口大小自适应Windows 7
Windows 7上Ubuntu 16.04虚拟机安装成功后,默认的虚拟机窗口比较小,需要适当调整,才能把虚拟机的屏幕放大, 适合使用,以下介绍调整方法. 安装VMware Tools 启动虚拟机, ...
- Java学习笔记42(序列化流)
对象中的数据,以流的形式,写入到文件中保存 过程称为写出对象,对象的序列化 ObjectOutputStream将对象写到文件中,实现序列化 在文件中,以流的形式,将对象读取出来, 读取对象,对象的反 ...
- 第二篇:服务消费者(RestTemplate+ribbon)
第一篇讲了服务的注册,这篇来说说服务的调用,服务与服务的通讯是基于http restful,springcloud的服务调用是通过ribbon方式的,客户端的负载均衡. Talk is cheap.S ...
- 一个简单的C语言题背后的故事
最近看到了一个C语言问题,是要计算出这个函数的输出: #include <stdio.h> int Test(int x,int y, int z){ printf("x,y,z ...
- Mac下命令行批量重命名
日常中碰到需要批量修改文件名怎么办?嗯,来终端先 案例:将Users/case目录下所有html文件修改为php文件 步骤: 1.进入目标文件夹 $ cd Users/case 2.执行以下命令 $ ...
- golang中GOPATH的简单理解
1.为什么要配置GOPATH 配置GOPATH的用意是为了方便项目的部署和构建,以及可以直接使用go get 命令下载第三方的包到自己的项目的src下和相关的执行文件bin目录,和中间文件pkg sr ...