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 ...
随机推荐
- nginx unit的初探
安装介绍: https://www.oschina.net/p/nginx-unit 可以看到,unit还是很强大的,居然特么都支持go 还有python 在/etc/yum.repos.d/unit ...
- RunC容器逃逸漏洞席卷业界,网易云如何做到实力修复?
近日,业界爆出的runC容器越权逃逸漏洞CVE-2019-5736,席卷了整个基于runC的容器云领域,大量云计算厂商和采用容器云的企业受到影响.网易云方面透露,经过技术团队的紧急应对,网易云上的容器 ...
- jquery中$().each() 和$.each()
// 形参1: 当前的下标 // 形参2: 当前的dom节点元素 $('#div1').find('div').each(function (i, item) { // this === item 当 ...
- JavaScript中的定时事件
这两个函数都是在给定的时间之后开始执行的,并不是立即执行. var timeId = window.setTimeout("method()",1000); //定时执行,还可以这 ...
- 谈谈 JavaScript 的正则表达式
一.背景 最近在做 CMS 系统中不同身份登录用户的权限管理,涉及到对 api 路径的识别去判断是否放行.以前对正则表达式都是敬而远之,要用到的话都是直接复制粘贴现成网上的表达式,看也看不太懂,借这次 ...
- nginx代理tomcat做负载
先对三台服务器统一环境. 对两台tomcat服务器的操作 查看jdk环境 # java -version openjdk version "1.8.0_65" OpenJDK Ru ...
- iOS开发笔记-一种任意字体、颜色混排UILabel的实现
最近开发新App,射妓狮给的图上出现一种不同大小字体混排的Label,就像下面这种: 想了想,最简单的方法是使用多个UILabel排列显示,但是这样不仅麻烦而且效果也不好,索性自定义UILabel来尽 ...
- 【leetcode】20.有效的括号
题目 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效.有效字符串需满足:左括号必须用相同类型的右括号闭合.左括号必须以正确的顺序闭合.注意空字符串可被认为 ...
- Xamarin.Android 调用本地相册
调用本地相册选中照片在ImageView上显示 代码: using System; using System.Collections.Generic; using System.Linq; using ...
- (转)linux进程 linux线程 信息查看 ps top pstree
原文:https://blog.csdn.net/xiaoliuliu2050/article/details/81912202 https://blog.csdn.net/u011734144/ar ...